Rake retrospektyf. Hoe't in selsskreaune oplossing better bliek te wêzen as in betelle

Hallo! Myn namme is Alexey Pyankov, ik bin de haadprogrammeur by Sportmaster. Ik sil daliks sizze dat "sjef" net "de wichtichste fan alle programmeurs" betsjut, nee, it is gewoan in namme, sa'n sjarmante oersetting foar "Senior+."

Ik wurkje sûnt 2012 by it bedriuw Sportmaster, en yn dizze tiid hat it ûntwikkelteam in protte oplossingen makke dy't ynteressant binne fan 'e technyske kant. Mar hjoed wol ik it graach hawwe oer ús wurk, mei de klam leaver op hoe't wy yn bepaalde dûbelsinnige situaasjes redenearren.

Dit artikel sil gjin spesifike technyske oplossingen befetsje (of alles wat technysk is) dat jo moatte pakke en tapasse yn jo projekt. It is leaver in refleksje op it dien wurk. D'r wiene sokke bysûndere mominten dy't ús as team beynfloedzjen - se ferienigen ús, fersterken ús en testen ús op sterkte. Hjoed sil ik besykje te praten oer dizze mominten, oer de sfear fan teamwork, oer ús harken en in oantal psychologyske trapen dêr't wy ússels soms yn ride.

Rake retrospektyf. Hoe't in selsskreaune oplossing better bliek te wêzen as in betelle

En ik sil begjinne mei 2012.

Ik kaam yn 2012 mei it haaddoel op dat stuit - wurkje oan ús flaggeskipwebside. Op dat stuit wie it in "Frankenstein-monster": in diel fan it team wurke mei ús âlde systeem, dat net goed mei loads omgie (Bitrix), wylst in oar diel fan it team (wêrby my omfette) besocht in nij systeem út te fieren , dat waard keazen neffens it kritearium "Ienris dit is de djoerste e-commerce yn 'e wrâld, litte wy it nimme." It wie krekt "se besocht te ymplementearjen" - om't it systeem wanhopich fersette, en foar elk momint dat se slagge om te sortearjen, ferskynde altyd in "ferrassing" as antwurd. Wy wurken hurd, mar bewege yn in slakketempo.

Foar my persoanlik wie de lêste strie myn kunde mei de koade fan ien metoade yn dizze "djoerste e-commerce yn 'e wrâld", doe't ferskate oeren fan konsintrearre wurk oan in betiizjende brek liede ta it feit dat de reden earne fûn waard yn de oanpaste-tag, dy't wurket by it generearjen fan html yn jsp. It doel fan dizze oanpaste tag is om de som fan guon wearden wer te jaan. Dit is net min, dit is wêrfoar oanpaste tags binne ûntworpen. Mar de ferrassing wie ferburgen yn it feit dat tagelyk guon gegevens yn 'e databank wurde feroare, it gedrach op' e folgjende siden is oan dit ferbûn, en as jo op F5 drukke, wurdt de oprop werhelle, dit skeint de konsistinsje fan 'e gegevens . Boppedat, it skeind op sa'n manier dat it ferskynde pas nei in pear stappen, op 'e 3e side fan' e folchoarder. Nee, ik ha der neat oan om sa'n "master ninja" yn it team te hawwen en de oandacht fan myn kollega's yn goede foarm te hâlden mei syn koade. Mar krekt sa, yn it djoerste systeem!

It wie freed. En myn kollega en ik ha sneon en snein op kantoar west om út te finen hokker taken it bedriuw no foar it systeem stelt en hokker taken it oer in jier komme kin. Dêrom, hoe soene wy ​​se oplosse as wy net waarden dreaun yn it ramt fan it brûken fan dit djoerste en meast ferfelende systeem.

Net earder sein as dien. Wy hawwe in pilot makke wêryn wy de basis leinen foar de ûntwikkeling fan in nije Sportmaster-webside. In protte fan dizze ideeën hawwe fongen op en op it stuit is har fuortsetting aktyf sirkulearje op 'e side.

Pilotstadia en tiidframes

2 dagen. Wy makken in mikroprototype - yn it wykein hawwe wy ús database oerbrocht nei ElasticSearch, mei faceted sykjen. Voila! Yn itselde kocht systeem, dizze ynstelling "iten up" 2 wiken. En hjir - letterlik yn in pear oeren! En it wurket ek flugger. En it is in oarder fan grutte flugger.

2 wiken. Wy snije it prototype en foegje funksjonaliteit ta foar adekwate personaliseare resultaten.

Bygelyks, in brûker hat ferskate koartingen en promoasjes dy't spesifyk foar him relevant binne - dan moatte jo yn 'e sykresultaten op produkten krekt de priis werjaan dy't kin wurde krigen troch alle beskikbere guod op' e meast rendabele manier te brûken.

It is net sa ienfâldich mei oandielen. Ik haw bygelyks ski's kocht, no is der 40% koarting op in pet, mar tagelyk wurdt de 10% wolkomkoarting op 'e hiele bestelling annulearre. Ja, ja, dit is in echte saak :) En om sa'n promoasje yn it ynkeapsysteem op te setten binne 3 oerlis mei de leveransier betelle, wêrtroch't wy in protte foarbylden krigen hawwe hoe't jo ferskate oare promoasjes kinne meitsje. Hiel diplomatysk en, sjoen de kosten fan oerlis, tige goed ekonomysk.

Wy lieten it bedriuw in detaillearre demo sjen. Se beloofden de piloat fluch te sammeljen en kamen daliks oan it wurk.

2 moannen. Wy dogge in proefprojekt yn de foarm fan in live webside mei in katalogussykjen. Sykje mei fasetten, sykresultaten mei persoanlike koartingen, de pilot liket hast op 'e webside fan Sportmaster, en wy uploaden deselde produkten. Sweetie!

Wy foegje "Eloquence:100" ta fan ús ôfdielingshaad, en de presintaasje oan it bedriuw giet mei in knal! Wy krije carte blanche om it eCommerce-platfoarm sels te ûntwikkeljen.

En dit betsjut, jonges, hâld it team, jonges, hâld it budzjet. Koel!

2 jier. It lansearjen fan de side yn produksje. Ja, foar in lange tiid. Alles wat wy doe wisten, besochten wy allinich op in prototypeskaal. Twa minsken foarmje maklik in goed koördinearre team. En de taken dy't wy "ôfklikten" wiene, yn 't algemien, lytse tafoegings oan "Hello World" yn nije technologyen. Wy makken maklik nije hypotezen, testen se gau, hienen gjin tiid om te hechtsjen en dêrom "fermoarde" se sûnder spyt. Doe't wy 10 wiene, ekstrapolearren wy, troch inertia, ús wurksnelheid oan alle oaren. En se tasein sokke deadlines foar it foltôgjen fan de taak dy't gelyk binne oan it idee fan skientme fermannichfâldige mei ús entûsjasme.

Is dit in bekende situaasje? 🙂

Dan, witte jo al wat der dan barre sil?

Trap #1. "Cool Extrapolator"

It is dúdlik dat nije technologyen heul cool sjogge yn presintaasjes en goed prestearje yn in Hello World-applikaasje. Mar de realiteit is meastentiids wat fierder fan dit.

Dus hjir is it. Wy nimme in bibleteek en skriuwe in boskje applikaasjekoade. Wy beskôgje ienheidtests as in lêst (wy binne cool en wurkje hjir op supersonyske nivo's, de koade is modern ensafuorthinne). Wy feroarje en ferbetterje de API konstant ûnderweis - wat soarte fan tests binne der, serieus. En dit alles ûnder de banner fan "it ûntwikkelingsproses sterk optimalisearre" (ja, no is it sels skriklik om it te beskriuwen).

En dan is alles frij dúdlik.

Wy rôlje in nijbou út op uat. De jonges fan it bedriuw geane fleurich it hiele spul teste en op knoppen drukke. Soms drukke se frij kreatyf - der falt wat ôf. Ik soe hjir graach hinne wolle en útfine wat se hjirfoar dien hawwe. Mar oan 'e oare kant fan' e monitor is net in koppige tester dy't jo alle skaaimerken fan 'e omjouwing sil útrôlje, rekken hâldend mei it waar yn' e regio, mar in klant fan bedriuw. It gewoan "wurket net" foar him. Wat betsjut dat hy is ûngelokkich. Freegje him en hy sil Scary ûntefreden!

Rake retrospektyf. Hoe't in selsskreaune oplossing better bliek te wêzen as in betelle

Dan, om de brek te reprodusearjen, moatte jo gean en alles brute force. Fansels hawwe wy gjin klacht negearre en alles opnommen. Se ferlieten plande taken, mar "douwe it fjoer."

Dat wy groeven ússels it folgjende gat.

Trap #2. "Stakhanovite"

Jo hawwe in net heul noflike bug krigen. Jo begjinne te begripen. It slagget net - lilkens - besykje it wer út te finen - noch in bummer - jo ferklearje alles wat jo kinne - wer is it net itselde - jo tinke dat jo al âld binne en elkenien hat bern en in hypoteek - jo besykje it nochris - wer is it net itselde. In pear bekers kofje, en alles werhellet him. 12-14 oeren wurk op in rige is hast de noarm. En no, as alles al oan 'e limyt is - bam, ynspiraasje!

Rake retrospektyf. Hoe't in selsskreaune oplossing better bliek te wêzen as in betelle

Faaks is fan bûten de beoardieling foar de effektiviteit fan sa'n dei goed en goed sichtber. Mar fan binnen kin it oars.

Yn myn gefal befette de yndruk fan sa'n wurk "Ik bin geweldich, ik bin cool, ik haw it goed." Net altyd bewust, mar ûnbewust - altyd!

En jo wurde der op ferwûne, gjin grap. It docht bliken dat de ynterne metriken fan beweging súkses ferskowe fan it resultaat nei it bedrach fan ynspannings tapast en it nivo fan hokker feats jo dien hawwe, hoefolle jo lijen wylst besykje te lossen it probleem.

Dit is wierskynlik de minste trap.

Dan wurdt it makliker en leuker :)

Trap #3. "De krêft fan Hello World"

Us technologystapel fan dy perioade: ElasticSearch, Hazelcast, Pentaho, freemarker (en bewezen Java, Spring, Tomcat, nginx). Freemarker levere net heul ynformative flaterberjochten. Mar ElasticSearch, Hazelcast, Pentaho moasten ferskate kearen wurde patched - wy fûnen briljant gefallen wêryn se net wurken lykas spesifisearre yn 'e dokumintaasje.

In maklike start en flugge foardielen fan it brûken fan nije technology binne goed, mar se liede ta euforie en ferminderje waaksichheid. Om't nije technology bugs befettet, befettet it perfoarst bugs. En as jo der noch net oer skreaun hawwe, bliid wêze, jo binne de pionier dy't yn alle gefallen wat krom oppakt en nei Google of op SO giet. Fansels kin de "krom" fûn wurde yn bewezen produkten, mar yn nije is it folle makliker.

Rake retrospektyf. Hoe't in selsskreaune oplossing better bliek te wêzen as in betelle

Nettsjinsteande alle swierrichheden binne wy ​​yn produksje gien. Ja, mei efterstân. Ja, net hiel stabyl. Mar yn it algemien, gjin rampen.

Gearfetsjend sil ik nochris de fallen oanwize dy't in sûne belibbing fan it wurkproses ferdraaie.

  1. "Cool Extrapolator". Under de yndruk fan de hjoeddeistige súksessen, geane wy ​​en ekstrapolearje lokkich de snelheid fan ûntwikkeling nei kommende projekten.
  2. Stakhanovets. Wy wurkje hurd, binne tefreden mei ússels, mar wy fernimme net dat de problemen dy't wy oplosse in gefolch binne fan ús persoanlike flaters / tekoartkommingen / ferwaarloazingen. Wurket net te dwaan.
  3. "De krêft fan Hello World". Wy binne haast om alle nijste en meast nijsgjirrige dingen yn produksje yn te fieren.

Wêrom slagge alles?

Fansels haw ik net alle flaters neamd dy't wy yn dizze tiid hienen, mar de meast foarkommende, wierskynlik foar in projekt fan elke spesifisiteit. Dit soarte fan opname fan flaters helpt om se yn 'e takomst te foarkommen.

In bytsje oer hoe't wy it slagge om sa'n mini-startup binnen it bedriuw te meitsjen en it bedriuw te oertsjûgjen fan in al kocht systeem nei wat fan har eigen.

Betingst nr. 0. Sûn klimaat yn it bedriuw. Dit is net allinich de "baarnende eagen" fan meiwurkers en kommunikaasjefeardigens yn stressfolle omstannichheden om koekjes te krijen, nee. It giet om alle ynteraksjes.

Betingst nr. 1. Leau yn wat jo dogge. Serieus, ik tink net dat wy in kâns soene hawwe hân as wy de pilot oannommen hiene sûnder it oankochte systeem nei de bolt te demontearjen - dat is, weromlûke en ûnbewust wittende dat dit systeem koeler is en ús sil ferslaan.

Wat wy dien hawwe: 1) it ynkeapsysteem útfûn, mei har help hawwe wy de wichtichste oanfragen fan it bedriuw oplost 2) in list gearstald mei taken dy't net allinich no bestean, mar ek yn 'e foargeande takomst bestean sille 3) in oplossing selektearre hawwe dy't past better. En dan wie ús beoardieling fan 'e oplossing de beoardieling fan saakkundigen.

Soene se ús wat jaan as wy gewoan kamen en seine: "Jongens, alles is rommel, wy wolle hjir net mei omgean en besletten om ús eigen te meitsjen fanôf it begjin"? Amper. Boppedat soe it antwurd yn sa'n foarm ûntfongen wurde dat it goed ûnthâlden wurde soe :)

Betingst nr. 2. Wy nimme de earste stap lyts. Litte wy de earste hypoteze generearje en it testen. Jo kinne ek besteegje dyn persoanlike tiid oan dit. As jo ​​​​jo tiid net fergrieme wolle, dan moatte jo soks hielendal net nimme. En as jo net in lytse hypoteze testje wolle, mar it daliks koel en briljant dwaan wolle, bliuw dan fuort fan sokke minsken!

Wy hiene gelok en de alderearste hypoteze wurke. Mar dit bart net altyd. Bygelyks, yn ien fan 'e folgjende projekten, doe't wy it adminpaniel promovearren as ûnderdiel fan in ferlykbere pilot, wurke allinich de 18e opsje foar ús. En de earste 17 oanpak fan it projektyl ​​wiene om 'e nocht. Trouwens, yn it ferhaal fan 'e oprjochting fan it adminpaniel wiene de plot twists op it nivo fan' e Braziliaanske tv-searjes, om't it team bestie út jonges dy't op dat stuit al feteranen wiene, echte "grate rollen".

Betingst nr. 3. Wy meitsje in MVP en sykje pine yn 'e beslútmakker. Fansels kin er in blik fan ôfgriis op syn gesicht hawwe krekt fan it feit dat jo him foar de tritichste kear in soarte fan idee bringe. Mar gjin saak. En wy soargje derfoar dat wy krekt sjen litte hoe't wy syn problemen oplosse mei ús produkt.

Betingst nr. 4. Op 'e knibbel dogge wy gau in piloat dy't sjocht sawat as it einresultaat. It is ferliedlik om alles echt cool te meitsjen, mar jo kinne fêst sitte yn perfeksjonisme, wat kin liede ta dat jo in pilotferzje sjen wolle fan in al perfekt produkt ynstee fan in pilot. Mar se besteane net. Dus meitsje gewoan ien fan stokken.

Betingst nr. 5. Produkt. It projekt groeit, krijt finansiering, en spesjalisten mei solide ûnderfining komme.
En as jo in klassike startuper binne, dan is dit it heule momint dat jo moatte ophâlde mei in fluit. Want maklike flechten nei de top en it gefoel fan 'e algemiene blidens fan wat der bart, ferdwine gau.

Yn produksje gean betsjut dat jo echte wurkdruk hawwe, yntegraasje mei tsientallen systemen, en as jo nije funksjonaliteit oanmeitsje, ferfine jo âlde ferzjes tagelyk as ûnderdiel fan ûnderhâld. Dit alles binne útdagings dy't folle serieuzer binne dan mei in idee te kommen en, hoewol goed, mar ien klantprobleem op te lossen.

Dit binne útdagings, en de groei fan feardichheden komt krekt op dit stadium.

Tank foar it lêzen. Happy New Code!

Boarne: www.habr.com

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster