Zmena spôsobu, akým uvažujeme o inžinierstve, aby sme sa opäť stali staviteľmi

Zmena spôsobu, akým uvažujeme o inžinierstve, aby sme sa opäť stali staviteľmi

V Bufferi som od roku 2014 a ešte pred nástupom som bol vždy fanúšikom produktovej a inžinierskej kultúry tímu Buffer: ako rýchlo dodávali vylepšenia a ako blízko boli všetci k používateľom (nie je nezvyčajné vidieť, ako inžinieri reagujú do komentárov na Twitteri!).

Zistil som, že postoj „power-to-do“ je inšpiratívny a nákazlivý a je úžasné, ako sa veci takto rozbiehajú. Samozrejme, keď som nastúpil, boli sme tím 24 ľudí; Všetci sme nosili veľa klobúkov a nemali sme manažérov.

Ako sme napredovali, začali sme si osvojovať vytváranie tímových štruktúr a procesov, ktoré nás lepšie podporujú a riadia tento rast. Ale samozrejme, škálovanie spolupráce pri zachovaní rýchlosti je umenie samo o sebe a začínajú sa objavovať trecie body: projekty sa často dostanú do úzkych miest a tímy sa budú navzájom blokovať. Keďže uvoľnenie funkcií bude trvať dlhšie, pokúsime sa to urobiť „správne“ tým, že strávime viac času vytváraním špecifikácií toho, čo sme sa snažili vybudovať, ale samozrejme, čím väčšie projekty, tým dlhšie trvá ich dodanie.

Uviazli sme v samozosilňujúcej sa slučke: ak niečo vybudovanie trvá mesiace, je veľmi ťažké to dotiahnuť do konca a zopakovať, pretože budeme mať aj iné priority, ktorým sa musíme venovať! To naďalej posilňovalo potrebu robiť viac a lepšie a naďalej vytváralo väčší tlak na to, aby sme to urobili správne.

Minulý rok sme si uvedomili, že chceme zmeniť určité návyky a dynamiku vyrovnávacej pamäte, aby sme sa častejšie vracali k prvým dňom nabíjania: čím viac pravidelne nabíjate, tým ľahšie je spravovať tieto zmeny (pretože sú menšie). Cítime sa bezpečnejšie, aj keď vec, ktorú posielame, zlyhá – vytvára väčšiu psychologickú bezpečnosť pre náš tím. Bolo to jasné: Chceli sme byť opäť stavbármi a prijať podnikanie a kultúru spiatočníctva.

Metriky, ktoré nám pomáhajú určiť stavebnú situáciu

Ako budeme vedieť, že sme v režime budovania? Že sa pohybujeme rýchlejšie, odosielame častejšie a upevňujeme spätnú väzbu s našimi zákazníkmi? Niekoľko užitočných metrík, ktoré nás povedú na tejto ceste: časový cyklusA rýchlosť vyžiadania ťahuA chybovosť. Tu je niekoľko súvislostí o tom, čo tieto metriky znamenajú a ako ich meriame:

časový cyklus
Keďže chceme skrátiť čas potrebný na uvedenie na trh, chceme merať, ako rýchlo a ako často poskytujeme hodnotu našim používateľom. Čas cyklu je pre nás čas medzi začatím práce na funkcii alebo vylepšení (prvá zmena, ktorú vykonáme v kódovej základni) do okamihu, keď Žiadosť o výber So zmenami sú kombinované a uvoľnené do výroby.

Požiadavka na produktivitu
Požiadavky na stiahnutie sú artefakty, ktoré vytvárame ako vývojári, aby sme začali proces integrácie nových zmien kódu s existujúcim kódom spusteným vo výrobe.

Každú požiadavku na stiahnutie môžeme považovať za jednotku práce, ktorá poskytuje hodnotu (napríklad nová funkcia, oprava chýb alebo iná optimalizácia kódovej základne). To je dôvod, prečo môže byť celkový počet vstavaných požiadaviek na stiahnutie (a ich nasadenie do produkcie) proxy pre doručovanú hodnotu.

chybovosť
Samozrejme, rýchlejší pohyb nič nezlepší, ak to znamená, že našim zákazníkom posielame viac nedostatkov a chýb!

Chybovosť pre nás funguje ako kontrolná metrika, pretože meriame počet vykonaných zmien kódu, ktoré riešia chyby spôsobené v predchádzajúcich zmenách.

Dynamika, ktorú sme použili na dosiahnutie tejto zmeny v inžinierskom myslení

Tak ako sú návyky životne dôležité pre formovanie našej identity ako jednotlivcov, sú nevyhnutné pre rozvoj myslenia a kultúry spoločnosti.

Keď vieme, čo chceme dosiahnuť a ako to merať, začneme premýšľať o novej dynamike, ktorú keď si osvojíme, pomôže nám vybudovať si identitu staviteľov. Tiež sme mali oči otvorené pre súčasné zvyky, ktoré nám blokovali cestu a bránili nám dostať sa na ďalšiu úroveň.

Zákaznícke inžinierske dni
Základnou súčasťou každého staviteľa je byť v kontakte so zákazníkmi: Priama interakcia s našimi zákazníkmi je kľúčom k získaniu prehľadu o otázkach, ktoré kladú, o potrebách, ktoré majú, a o problémoch, ktoré pociťujete v našich systémoch.

V rámci Customer Engineering Days máme každý inžiniersky tím na každý cyklus pridelený jedného inžiniera spárovaného s právnikom na jeden deň, aby odpovedal na lístky v doručenej pošte a spoločne opravoval rýchle výhry. Toto je skvelá príležitosť pre inžinierov položiť našim obhajcom zákazníkov otázky o našich zákazníkoch, funkciách a produktoch a pre obhajcov, aby sa podelili o svoje skúsenosti a priniesli zákazníkom skvelé nápady!

Odstráňte blokujúce žiadosti o výber čo najviac
Keď si osvojujeme kultúru rýchlejšieho pohybu, jedna z prvých vecí, ktorá ma zaujala, bol proces kontroly začlenenia zmien do produkcie: niektoré tímy budú mať zavedené pravidlo, ktoré vyžaduje, aby iný vývojár skontroloval ich kód pred priamym presadením zmeny. Priemyselné štandardy a výskum ukázali prekvapivé výsledky: Schvaľovacie procesy pre zmeny kódu nesúvisia s výkonom poskytovania softvéru.

Chceme odstrániť službu brány, aby sme vykonali zmeny, zlepšili vlastníctvo a umožnili ľuďom zostať v pohybe, takže tímy sa začínajú odkláňať od predvoleného nastavenia k otváraniu žiadostí o stiahnutie a čakaniu na schválenie a používajú hybridnú metódu s názvom „doručiť/ponúknuť/ opýtať sa”:

  • čln To len znamená! Nie je potrebné žiadať o kontrolu, stačí vykonať zmenu a zverejniť ju do produkcie.
  • Displeje Je to skvelé na získanie asynchrónnej spätnej väzby alebo zdieľanie niektorých nových vzorov a poznatkov s tímom, ale pred odoslaním do výroby nečakajte na schválenie.
  • opýtať sa Toto je tradičná metóda, pri ktorej sa vyžaduje kontrola kódu pred zlúčením a odoslaním do výroby.

Vysvetlenie, že existujú rôzne alternatívy a prístupy pre rôzne situácie, znamená, že tímy môžu vedieť, akú rovnováhu majú dosiahnuť, a vedia, či sú často v „režime otázok“, keď môžu viac tlačiť na „dodanie“ alebo „prezentácia“.

pracovať menšie
Samozrejme, ak sa zameriame iba na minulé postupy, bude to mať pocit, že od tímov žiadame viac a rýchlejšie. Tieto ciele a postupy sú pre nás výzvou a zlepšovaním spôsobu, akým pracujeme, nie toho, koľko pracujeme!

Jednou z kľúčových zložiek na zabezpečenie tohto a hlavným prispievateľom k tomu, aby sme sa stali vysoko výkonným tímom, je pracovať menšie: Ak našu prácu rozdelíme na funkcie, ktoré umožňujú rýchly vývoj, a nie väčšie, zložitejšie projekty, ktoré sú vydávané zriedkavo.

Inžinierske tímy preto prijímajú používanie prepínania funkcií (tiež nazývané prepínanie funkcií) ako spôsob zavádzania nových funkcií, ktoré sú stále vo vývoji, do výroby bez negatívneho vplyvu na používateľskú skúsenosť. Tým sa eliminujú veľké verzie s mnohými zmenami, namiesto toho môžeme našim používateľom vydať nové funkcie, keď ich už otestujeme vo výrobe.

Práca v menších dávkach vytvára väčšiu psychologickú bezpečnosť pre našich inžinierov, pretože riziko nasadenia naliehavých zmien, ktoré ovplyvňujú každého, sa dramaticky znižuje.

Technickí manažéri sa obracajú aj na stavbárov
Zatiaľ čo úloha inžinierskeho riaditeľa v rôznych tímoch sa primárne zameriavala na riadenie ľudí, kariérny rast inžiniera a koordináciu spôsobov práce, ich hlavnou zodpovednosťou je zabezpečiť, aby naše tímy priniesli hodnotu tým, že budujú naše produkty a tímy v spôsobom, ktorý je v súlade s našimi produktmi a našimi technickými cieľmi.

Aby sme teda mohli skutočne jazdiť s myslením týchto staviteľov, naši inžinieri sa musia stať tiež staviteľmi! Predefinovali sme rolu inžinierskeho riaditeľa a teraz sa snažíme, aby aspoň 25 % svojho času trávili v tíme priamo. Praktický tréning môže mať mnoho podôb, napríklad:

  • Ponorte sa do analýzy údajov a spustite novú funkciu.
  • Pracujte na nekritických úlohách.
  • QA’ing nové funkcie.
  • Jednanie so zákazníkmi.

To im poskytuje kontext a lepší prehľad o technických rozhodnutiach a kompromisoch, ktorým ich tímy čelia, a vytvára spoločný pocit vlastníctva v celom tíme, pretože všetci prispievame svojim vlastným spôsobom k vydávaniu často.

Výsledky: Prijali sme konštrukčné myslenie?

Túto cestu zmeny myslenia sme začali pred 9 mesiacmi a bola to skvelá cesta k zosúladeniu medzi tímami: množstvo funkcií a vylepšení, ktoré sme dodali za posledných pár mesiacov, je odrazom všetkých týchto zmien. Neustále sa sami seba pýtame „Ako môžeme poslať ďalšiu vec skôr a vo vyššej kvalite?“. my Cítiť Dochádza k zmene motivácie a energie.
Ak sa teraz vrátime k metrikám, ktoré som predtým zdieľal v tomto príspevku, môžeme vidieť, že:

  • Čas cyklu sa dramaticky skrátil: z priemerných 94,8 hodín v roku 2021 na doterajších 55 hodín v roku 2022.
  • V PR sa zvýšila návštevnosť: v roku 2021 bolo zverejnených 4 155 žiadostí o stiahnutie v porovnaní s 3 687 žiadosťami zverejnenými v roku 2022 (o 1 816 žiadostí o stiahnutie viac ako v H2 2021!).
  • Miera defektov sa znížila: Z 18 percent času opravuje defekty v roku 2021 na 16 percent v roku 2022 zatiaľ.

To znamená, že technický tím skutočne vydáva rýchlejšie a častejšie a kvalita nezasahuje do rýchlosti dodania.

Pripravuje sa niekoľko skvelých technologických projektov, ktoré zrýchlia celý inžiniersky tím v druhej polovici roka, takže len začíname! Existujú nejaké zvyky, ktoré má váš tím a ktoré mu pomohli zvýšiť rýchlosť prepravy a priblížiť sa k vašim zákazníkom? Keď pokračujeme na tejto ceste stať sa staviteľmi, som nadšený, že môžem pokračovať v zdieľaní toho, čo sme sa naučili a napredovať na tejto ceste.

Neváhajte sa so mnou spojiť na Twitteri na Vložiť tweet Aby ste sa podelili o svoje skúsenosti!

Leave a Reply

Your email address will not be published.