Retrospektivë mbi mundimet. Si një zgjidhje e shkruar nga vetja rezultoi më e mirë se ajo e paguar

Përshëndetje! Emri im është Aleksej Pyankov, unë jam programatori kryesor në kompaninë Sportmaster. Të them të drejtat, "kryesor" nuk do të thotë "më i rëndësishëm se të gjithë programatorët e tjerë", jo, kjo është vetëm një emër, një përkthim kaq tërheqës për "Senior+".

Në kompaninë Sportmaster punoj që nga viti 2012, dhe gjatë kësaj kohe ekipi ynë i zhvillimit ka realizuar shumë zgjidhje interesante nga ana teknike. Por sot do të doja të flas për punën tonë me një theks mbi mënyrën se si mendonim në situata të caktuara të paqarta.

NĂ« kĂ«tĂ« artikull nuk do tĂ« ketĂ« zgjidhje teknike konkrete (asgjĂ« qĂ« lidhet me teknikĂ«n), qĂ« duhet tĂ« kapen dhe aplikohen nĂ« projektin tuaj. MĂ« tepĂ«r, Ă«shtĂ« njĂ« reflektim mbi punĂ«n e bĂ«rĂ«. Kishim disa momente tĂ« veçanta qĂ« na ndikuan si ekip — na bashkuan, na forcuan dhe na testuan nĂ« qĂ«ndrueshmĂ«ri. Rreth kĂ«tyre momenteve, atmosferĂ«s sĂ« punĂ«s nĂ« ekip, gafa tona dhe disa kurthe psikologjike qĂ« ndonjĂ«herĂ« vetĂ« i krijojmĂ«, do tĂ« pĂ«rpiqem tĂ« flas sot.

Retrospektivë mbi mundimet. Si një zgjidhje e shkruar nga vetja rezultoi më e mirë se ajo e paguar

Dhe do të filloj pikërisht nga viti 2012.

Erdha nĂ« vitin 2012 me qĂ«llimin kryesor nĂ« atĂ« kohĂ« — punĂ«n mbi sitin tonĂ« kryesor. NĂ« atĂ« kohĂ« ishte "monstri Frankenstein": njĂ« pjesĂ« e ekipit punonte me sistemin tonĂ« tĂ« vjetĂ«r, qĂ« nuk pĂ«rballonte ngarkesat (Bitrix), ndĂ«rsa pjesa tjetĂ«r e ekipit (ku bisha dhe unĂ«) pĂ«rpiqeshim tĂ« implementonim njĂ« sistem tĂ« ri, qĂ« ishte zgjedhur me kriterin "NĂ«se kjo Ă«shtĂ« sistemi mĂ« i shtrenjtĂ« e-commerce nĂ« botĂ«, do ta marrim atĂ«". PikĂ«risht "pĂ«rpiqeshim tĂ« implementonim" — sepse sistemi ishte nĂ« njĂ« rezistencĂ« tĂ« fortĂ«, dhe pĂ«r çdo moment qĂ« arrinim tĂ« zgjidhnim, patjetĂ«r shfaqej njĂ« "surprizĂ«" si pĂ«rgjigje. Punonim shumĂ«, por avanconim me shpejtĂ«si si njĂ« bletĂ«.

PĂ«r mua, pika kryesore ishte njohja me kodin e njĂ« metode nĂ« kĂ«tĂ« "sistem e-commerce mĂ« tĂ« shtrenjtĂ« nĂ« botĂ«", kur pas disa orĂ«sh pune tĂ« pĂ«rqendruar mbi njĂ« bug tĂ« komplikuar, arritĂ«m tĂ« zbulojmĂ« se problemi ishte dikund nĂ« custom-tag, qĂ« aktivizohej gjatĂ« gjenerimit tĂ« html nĂ« jsp. Detyra e kĂ«tij custom-tag Ă«shtĂ« tĂ« tregojĂ« shumĂ«n e disa vlerave. Kjo Ă«shtĂ« e mirĂ«, ky Ă«shtĂ« qĂ«llimi i kĂ«tij custom-tag. Por surpriza ishte qĂ« gjatĂ« kĂ«tij procesi disa tĂ« dhĂ«na nĂ« bazĂ« ndryshonin, dhe kjo ndikon nĂ« sjelljen nĂ« faqet pasuese, dhe nĂ«se shtyp F5 — thirrja pĂ«rsĂ«ritej, duke shkelur konsistencĂ«n e tĂ« dhĂ«nave. NdĂ«rsa shkelja ndodhte vetĂ«m pas disa hapash, nĂ« faqen e tretĂ« tĂ« renditjes. Jo, nuk kam asgjĂ« kundĂ«r qĂ« njĂ« "master-ninja" tĂ« jetĂ« nĂ« ekip dhe me kodin e tij tĂ« mbajĂ« vĂ«mendjen e kolegĂ«ve nĂ« formĂ«. Por qĂ« tĂ« ndodhte kĂ«shtu, nĂ« bibliotekĂ«n e sistemit mĂ« tĂ« shtrenjtĂ«!

Ishte e premte. Të shtunën dhe të dielën e kaluam me kolegun tim në zyrë me qëllim që të kuptonim cilat detyra biznesi ndalon sot për sistemin dhe cilat detyra mund të imagjinojmë për një vit. Sipas kësaj, si do t'i zgjidhim nëse nuk ishim të ngjitur nga ky sistem i shtrenjtë dhe të mërzitshëm.

ThĂ«nĂ« — bĂ«rĂ«. Ne pĂ«rgatitĂ«m njĂ« pilot, nĂ« tĂ« cilin vendosĂ«m themelin pĂ«r zhvillimin e sitit tĂ« ri tĂ« Sportmaster. Shumica e kĂ«tyre ideve janĂ« pranuar dhe aktualisht vazhdojnĂ« tĂ« rrotullohen nĂ« sit.

Etapat e pilotit dhe korniza të përkohshme

2 ditĂ«. BĂ«mĂ« njĂ« mikroprototip — gjatĂ« fundjavĂ«s transferojmĂ« bazĂ«n tonĂ« nĂ« ElasticSearch, bĂ«jmĂ« kĂ«rkim faceting. Vua-la! NĂ« atĂ« sistem tĂ« blerĂ«, njĂ« konfigurim i tillĂ« do tĂ« kishte marrĂ« 2 javĂ«. E kĂ«tu — pĂ«r disa orĂ«! Dhe madje funksionon mĂ« shpejt. PĂ«r mĂ« tepĂ«r, shumĂ« mĂ« shpejt.

2 javĂ«. „Pila“ prototipin, shtojmĂ« funksionalitet pĂ«r njĂ« rezultat tĂ« arsyeshĂ«m tĂ« personalizuar.

PĂ«r shembull, pĂ«rdoruesi ka disa zbritje dhe oferta qĂ« janĂ« specifike pĂ«r tĂ« — atĂ«herĂ« nĂ« rezultatet e kĂ«rkimit duhet tĂ« tregohet çmimi qĂ« mund tĂ« mare, duke pĂ«rdorur tĂ« gjitha mundĂ«sitĂ« mĂ« tĂ« mira.

Me ofertat situata nuk Ă«shtĂ« e thjeshtĂ«. PĂ«r shembull, blen ski, tani ka njĂ« zbritje 40% pĂ«r kapelen, por nĂ« tĂ« njĂ«jtĂ«n kohĂ« anullohet zbritja e mirĂ«seardhjes 10% pĂ«r tĂ« gjithĂ« porosinĂ«. Po, ky Ă«shtĂ« njĂ« rast real 🙂 Dhe pĂ«r tĂ« konfiguruar njĂ« tĂ« tillĂ« ofertĂ« nĂ« sistemin e blerĂ«, janĂ« paguar 3 konsultime me furnizuesin, nga tĂ« cilat kemi marrĂ« shumĂ« shembuj se si tĂ« bĂ«jmĂ« oferta tĂ« ndryshme. ShumĂ« diplomatikisht dhe, duke marrĂ« parasysh koston e konsultimeve — ekonomikisht shumĂ« mirĂ«.

I dhamë biznesit një demo të detajuar. Premtuam të ndërtojmë shpejt pilotin dhe menjëherë filluam punën.

2 muaj. Projekti pilot — e bĂ«jmĂ« nĂ« formĂ«n e njĂ« siti tĂ« gjallĂ« me kĂ«rkimin nĂ« katalog. KĂ«rkimi me fenĂ«, rezultatet e kĂ«rkimit — me zbritje personale, duket sikur piloti Ă«shtĂ« pothuajse si siti i Sportmaster, dhe ndihmat i kemi ngarkuar tĂ« njĂ«jtat. ËmbĂ«lsirĂ«!

Shtojmë "Krasnorëçie:100" të shefit tonë të departamentit, dhe prezantimi për biznesin kalon shkëlqyeshëm! Na jepet mundësia të zhvillojmë platformën e tregtisë elektronike vetë.

Dhe kjo do të thotë, mbani, djem, skuadrën, mbani, djem, buxhetin. Shumë mirë!

2 vjet. Nxjerrja e faqes nĂ« prodhim. Po, zgjat. ÇfarĂ«do qĂ« dinim atĂ«herĂ«, e provuam vetĂ«m nĂ« shkallĂ«n e prototipit. Dy njerĂ«z lehtĂ«sisht formojnĂ« njĂ« ekip tĂ« koordinuar. Dhe detyrat qĂ« ne "shkruanim" — nĂ« thelb ishin vetĂ«m ndihma tĂ« vogla "Hello World" nĂ« teknologji tĂ« reja. Ne lehtĂ«sisht gjeneronim hipoteza tĂ« reja, i kontrollonim shpejt, nuk kishim kohĂ« tĂ« lidhemi me to dhe prandaj, pa asnjĂ« pendesĂ«, i "shkatrronim" ato. Kur u bĂ«mĂ« 10 njerĂ«z, nĂ« mĂ«nyrĂ« tĂ« zakonshme e ekstrapoluam shpejtĂ«sinĂ« tonĂ« tĂ« punĂ«s te tĂ« tjerĂ«t. Dhe premtuam afate pĂ«r kryerjen e detyrave, tĂ« cilat ishin tĂ« barabarta me pĂ«rfytyrimin pĂ«r tĂ« bukurĂ«n shumĂ«zuar me entuziazmin tonĂ«.

SituatĂ« e njohur? 🙂

Atëherë, a dini cfarë do të ndodhë më vonë?

Gjella №1. "Ekstrapolatori-i shkĂ«lqyer"

ËshtĂ« e qartĂ« se teknologjitĂ« e reja duken shumĂ« tĂ« shkĂ«lqyera nĂ« prezantime dhe i tregojnĂ« vetveten mjaft mirĂ« nĂ« aplikimin e nivelit "Hello World". Por realiteti zakonisht Ă«shtĂ« pak mĂ« ndryshe.

Pra, e marrim bibliotekĂ«n, shkruajmĂ« njĂ« sasi tĂ« madhe kodi aplikativ. Testet unitare i konsiderojmĂ« njĂ« barrĂ« (ne jemi tĂ« shkĂ«lqyer dhe punojmĂ« nĂ« supersonik, kĂ«tu, kodi Ă«shtĂ« modern dhe gjĂ«ra tĂ« tjera). NdryshojmĂ« dhe pĂ«rmirĂ«sojmĂ« API nĂ« lĂ«vizje — po çfarĂ« teste, seriozisht. Dhe e gjithĂ« kjo nĂ«n sloganin "e optimizuam procesin e zhvillimit" (po, tani nuk Ă«shtĂ« as e frikshme ta pĂ«rshkruajmĂ«).

Dhe më pas gjithçka është mjaft e qartë.

LĂ«shojmĂ« njĂ« build tĂ« ri nĂ« uat. DjemtĂ« e biznesit e testojnĂ« kĂ«tĂ« gjĂ« me entuziazĂ«m dhe shtypin butona. NdonjĂ«herĂ« e bĂ«jnĂ« atĂ« mjaft kreativisht — diçka dĂ«shton. KĂ«tu do tĂ« ishte mirĂ« tĂ« shkonim dhe tĂ« kuptonim se çfarĂ« kishim bĂ«rĂ«. Por nga ana tjetĂ«r e monitorit nuk ka tester tĂ« çmendur, i cili do tĂ« tĂ« jepte tĂ« gjitha karakteristikat e ambientit duke marrĂ« parasysh motin nĂ« rajon, por ka njĂ« klient nga biznesi. Ai thjesht thotĂ« "nuk funksionon". Dhe kjo do tĂ« thotĂ« se ai Ă«shtĂ« i pakĂ«naqur. Pyetni atĂ« — dhe ai do tĂ« jetĂ« shumĂ« i pakĂ«naqur!

Retrospektivë mbi mundimet. Si një zgjidhje e shkruar nga vetja rezultoi më e mirë se ajo e paguar

Atëherë, për të riprodhuar defektin, duhet të shkojmë dhe të provosh çdo gjë. Sigurisht, ne nuk e lanë pa vëmendje asnjë ankesë dhe e rregulluam gjithçka. Hiqnim detyrat e planifikuara, por "shuanim zjarrin".

Kështu krijuam një tjetër problem për veten.

Gjella №2. "Stakhanovci"

TĂ« shfaqet njĂ« defekt i pakĂ«ndshĂ«m. Fillon tĂ« merresh me tĂ«. Nuk arrin ta zgjidhĂ«sh — zemĂ«rim — pĂ«rpjekje pĂ«r tĂ« kuptuar pĂ«rsĂ«ri — njĂ« tjetĂ«r dĂ«shtim — kontrollon çdo gjĂ« qĂ« Ă«shtĂ« e mundur — pĂ«rsĂ«ri nuk Ă«shtĂ« ajo — mendon se tashmĂ« je i vjetĂ«r dhe tĂ« gjithĂ« kanĂ« fĂ«mijĂ« dhe hipoteka — provon pĂ«rsĂ«ri — pĂ«rsĂ«ri nuk Ă«shtĂ« ajo. Disa filxhanĂ« kafe, dhe gjithçka pĂ«rsĂ«ritet. 12-14 orĂ« punĂ« pa ndĂ«rprerje — pothuajse si normĂ«. Dhe ja, kur gjithçka Ă«shtĂ« nĂ« skajin — puf, ndriçimi!

Retrospektivë mbi mundimet. Si një zgjidhje e shkruar nga vetja rezultoi më e mirë se ajo e paguar

Ndoshta, nga jashtĂ«, vlerĂ«simi pĂ«r efikasitetin e njĂ« dite tĂ« tillĂ« duket i qartĂ« dhe i saktĂ«. Por nga brenda — mund tĂ« jetĂ« ndryshe.

NĂ« rastin tim, pĂ«rshtypja nga njĂ« punĂ« e tillĂ« pĂ«rfshinte "Jam i shkĂ«lqyer, jam i shkĂ«lqyer, e rregullova." Jo gjithmonĂ« nĂ« mĂ«nyrĂ« tĂ« vetĂ«dijshme, por nĂ« mĂ«nyrĂ« tĂ« pavetĂ«dijshme — gjithmonĂ«!

Dhe për këtë bëhesh i varur, pa shaka. Kështu që, metrikat e brendshme të suksesit zhvendosen nga rezultati në numrin e përpjekjeve të aplikuara dhe nivelin e veprave që ke bërë, sa shumë ke vuajtur, duke përpjekur të zgjidhësh problemin.

Ndoshta, kjo është gracka më e frikshme.

MĂ« vonĂ« do tĂ« jetĂ« mĂ« e lehtĂ« dhe mĂ« argĂ«tuese 🙂

Gjella №3. "Forca e Hello World"

Stoku ynĂ« i teknologjisĂ« nĂ« atĂ« periudhĂ«: ElasticSearch, Hazelcast, Pentaho, freemarker (dhe Java, Spring, Tomcat, nginx tĂ« provuara dhe tĂ« vĂ«rteta). Freemarker nuk jepte mesazhe shumĂ« informative pĂ«r gabimet. Por ElasticSearch, Hazelcast, Pentaho duhej tĂ« patchonim disa herĂ« — ne gjeçim çdoherĂ« rastet ku ato nuk funksiononin ashtu siç e kishte parashikuar dokumentacioni.

NjĂ« fillim i lehtĂ« dhe shpĂ«rblime tĂ« shpejta nga pĂ«rdorimi i njĂ« technologie tĂ« re — kjo Ă«shtĂ« mirĂ«, por ato na futin nĂ« entuziazĂ«m dhe ulin vigjilencĂ«n. Sepse teknologjia e re pĂ«rmban defekte, domosdoshmĂ«risht pĂ«rmban defekte. Dhe nĂ«se pĂ«r to nuk Ă«shtĂ« shkruar ende — gĂ«zohu, pikĂ«risht ty tĂ« takon tĂ« bĂ«hesh pionieri qĂ« do tĂ« gjejĂ« diçka tĂ« keqe dhe do tĂ« shkojĂ« tĂ« kĂ«rkojĂ« nĂ« Google ose nĂ« SO. Sigurisht, "tĂ« kĂ«qijat" mund tĂ« gjenden nĂ« produkte tĂ« provuara, por nĂ« tĂ« reja — Ă«shtĂ« shumĂ« mĂ« e lehtĂ«.

Retrospektivë mbi mundimet. Si një zgjidhje e shkruar nga vetja rezultoi më e mirë se ajo e paguar

PavarĂ«sisht nga tĂ« gjitha vĂ«shtirĂ«sitĂ«, ne dolĂ«m nĂ« prodhim. Po, me vonesa. Po, jo shumĂ« stabil. Por nĂ« pĂ«rgjithĂ«si dhe pĂ«rfundimisht — pa katastrofa.

Dhe një herë tjetër do t'i theksoj grackat, në të cilat perceptimi i shëndetshëm i procesit të punës deformohet.

  1. "Ekstrapolatori-i shkëlqyer". Nën ndikimin e suksesit aktual , ne shkojmë dhe gëzojmë dhe ekstrapolomë shpejtësinë e zhvillimit në projektet e ardhshme.
  2. "Stakhanovci". Puno punojmë, jemi të kënaqur me vetveten, por nuk e kuptojmë se problemet që zgjidhim janë pasojë e gabimeve ose neglizhencave tona personale. Works not to be done.
  3. «Forca Hello world». Nxitojmë të implementojmë në production gjithçka më të re dhe interesante.

Pse na doli mirë

Sigurisht, nuk i listova të gjitha gabimet që kemi bërë gjatë kësaj kohe, por ato më të zakonshmet, të pranishme për projekte të cilat kanë çdo lloj specifike. Ky regjistrim gabimesh ndihmon për t'i shmangur ato në të ardhmen.

Për pak fjalë mbi mënyrën se si arritëm të krijojmë një mini-startup brenda kompanisë dhe të bindim biznesin të largohet nga një sistem të blerë tashmë në diçka që e kemi bërë vetë.

Kusht nr. 0. Një klimë e shëndetshme në kompani. Kjo nuk është vetëm për 'sytë e ndezur' të punonjësve dhe komunikimin në kushte stresi për të nxjerrë biskota, jo. Kjo ka të bëjë me të gjitha ndërveprimet.

Kusht nr. 1. TĂ« besosh nĂ« atĂ« qĂ« bĂ«n. Serious, nuk mendoj se do tĂ« kishim ndonjĂ« mundĂ«si, nĂ«se do tĂ« merreshim me pilotin pa shqyrtuar sistemin e blerĂ« 'deri nĂ« bulĂ«za' — pra, duke u tĂ«rhequr dhe duke e ditur nĂ« subconshien qĂ« ky sistem Ă«shtĂ« mĂ« i mirĂ« dhe do tĂ« na mposhtĂ«.

ÇfarĂ« bĂ«mĂ«: 1) shqyrtuam sistemin e blerĂ«, duke pĂ«rdorur atĂ« pĂ«r tĂ« zgjidhur kĂ«rkesat kryesore nga biznesi 2) pĂ«rgatitĂ«m njĂ« listĂ« detyrash, tĂ« cilat jo vetĂ«m qĂ« janĂ« aktualisht, por do tĂ« jenĂ« edhe nĂ« tĂ« ardhmen e afĂ«rt 3) pĂ«rzgjodhĂ«m njĂ« zgjidhje qĂ« pĂ«rshtatet mĂ« mirĂ«. Dhe atĂ«herĂ«, vlerĂ«simi ynĂ« i zgjidhjes ishte njĂ« vlerĂ«sim nga ekspertĂ«t.

Na do tĂ« jepnin diçka, nĂ«se do tĂ« ishim thjesht paraqitur dhe do tĂ« kishim thĂ«nĂ«, 'djem, gjithçka Ă«shtĂ« njĂ« gĂ«njeshtĂ«r, nuk duam tĂ« merremi me kĂ«tĂ« dhe vendosĂ«m tĂ« bĂ«jmĂ« diçka nga e para'? E pamundur. PĂ«r mĂ« tepĂ«r, pĂ«rgjigjen do ta merrnim nĂ« njĂ« formĂ« qĂ« do tĂ« mbahej mend mirĂ« 🙂

Kusht nr. 2. Hapi i parĂ« e bĂ«jmĂ« tĂ« vogĂ«l. GjenerojmĂ« hipotezĂ«n e parĂ« dhe e kontrollojmĂ«. Mund tĂ« shpenzojmĂ« pĂ«r kĂ«tĂ« edhe kohĂ«n tonĂ« personale. NĂ«se nuk dĂ«shiron tĂ« shpenzosh kohĂ«n tĂ«nde, atĂ«herĂ« nuk ia vlen tĂ« merresh me njĂ« punĂ« tĂ« tillĂ«. Dhe nĂ«se nuk dĂ«shiron tĂ« kontrollosh njĂ« hipotezĂ« tĂ« vogĂ«l, por dĂ«shiron tĂ« bĂ«sh menjĂ«herĂ« diçka tĂ« shkĂ«lqyer dhe me shkĂ«lqim — largoju nga njerĂ«zit e tillĂ«!

Na ndodhi me fat, dhe hipoteza e parë funksionoi. Por kështu nuk ndodh gjithmonë. Për shembull, në një nga projektet e ardhshme, kur promovonim admin panelin në kuadër të një piloti të ngjashëm, vetëm varianti i 18-të funksionoi. Dhe 17 qasjet e para ndaj problemeve ishin të kota. Përveç kësaj, në historinë e krijimit të admin panelit, ngjarjet kishin kthesa të nivelit të telenovelave braziliane, sepse ekipi ishte përbërë nga djem, tashmë veteranë, të vërtetë 'tërheqës'.

Kusht nr. 3. Krijojmë MVP dhe kërkojmë dhimbjet tek personi që merr vendimin. Sigurisht, ai mund të reflektojë horror në fytyrë duke u ndjerë se ju po i paraqitni një gjetje të re për herë të tridhjetë. Por megjithatë. Dhe patjetër që tregojmë se si e zgjidhim problemin e tij me produktin tonë.

Kusht nr. 4. Shpejt krijojmë një pilot që duket afro si rezultati përfundimtar. Të bësh gjithçka super është joshëse, por mund të biesh në një perfeksionizëm, për shkak të të cilit në vend të pilotit dëshiron të tregosh një version pilot të produktit përfundimtar. Dhe të tillë nuk ka. Prandaj, thjesht bëj diçka edhe nëse është prej druri.

Kusht nr. 5. Produkti. Projekti rritet, merr financime, vijnë specialistë me përvojë të konsiderueshme.
Dhe nëse je një startupers klasik, kjo është pikërisht momenti që duhet të largohesh me shpejtësi. Sepse fluturimet e lehta mbi majat dhe ndjesia e mirëqenies së gjithçkaje shpërndahen shpejt.

Shkaku i daljes nĂ« prodhim — Ă«shtĂ« pĂ«rballja me ngarkesa reale, integrimi me dhjetĂ«ra sisteme, dhe kur krijon funksionalitete tĂ« reja, po ashtu, brenda kornizĂ«s sĂ« mbĂ«shtetjes punon me versionet e vjetra. TĂ« gjitha kĂ«to janĂ« sfida shumĂ« mĂ« serioze se sa tĂ« kesh njĂ« ide dhe tĂ« zgjidhĂ«sh vetĂ«m njĂ« problem tĂ« klientit, pavarĂ«sisht nĂ«se e zgjidhi mirĂ«.

KĂ«to janĂ« sfida dhe rritja e aftĂ«sive — ndodh pikĂ«risht nĂ« kĂ«tĂ« fazĂ«.

Faleminderit që lexuat. Happy New Code!

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster