Rozširovanie DoD je najlacnejší nástroj na zlepšovanie
Tím, u ktorého som minulý rok sedel, mal na stene pripnutú Definition of Done (definíciu hotového): kód prešiel revíziou, má jednotkové testy, je zlúčený do hlavnej vetvy main. Bol to dobrý zoznam. Dobrým zoznamom bol asi osemnásť mesiacov, a práve v tom bol problém, hoci to v miestnosti nikto takto nevidel.
Spýtal som sa, kedy ju naposledy menili. Nastalo ticho, ten druh, ktorý vám prezradí, že odpoveď znie „nemenili sme ju“. Niekto nadhodil, že nemali potrebu, lebo definícia stále platí. Všetko, čo dodali, ju spĺňalo. Latku prekonávali každý sprint.
Takto vyzerá zaseknutá slučka zlepšovania zvnútra. Nevyzerá ako úpadok. Vyzerá ako stálosť. Tím prekonáva latku, latka zostáva na mieste a každý si tú vyrovnanosť vykladá ako kvalitu. Štandard, ktorý stíchol, sa na nerozoznanie podobá štandardu, ktorý bol zvládnutý, a zvnútra ich od seba nijako neodlíšite.
Stabilná latka nie je vysoká latka
Tu je tá diagnóza, povedaná na rovinu. Ak sa vaša Definition of Done za rok nerozšírila, váš tím prestal dospievať. Stabilita, ktorú si vykladáte ako kvalitu, je podpisom slučky, ktorá stíchla.
Znie to tvrdo a spočiatku to sadne zle, lebo sme vycvičení vnímať stabilný štandard ako úspech. Nastavíte latku, dôsledne ju plníte a nazvete to prevádzkovou dokonalosťou. Lenže štandard, ktorý vždy dokážete splniť, nemeria váš strop. Meria vaše pohodlie. V deň, keď sa definícia prestane meniť, vám prestáva čokoľvek hovoriť o tom, či sa zlepšujete. Hovorí vám už len to, že ste sa nezhoršili.
A Definition of Done nie je výkaz lokálnej efektivity, toho, ako čisto beží každý krok vo vašej vlastnej linke (pipeline). Meria, ako blízko je tím k produktu hotovému: k celému produktu, ktorý sa naozaj dá dodať, nie len ku kúsku, ktorý práve vlastní tento tím. Zrelosť je pohyb smerom k tomu celku, nie upratanejšia verzia práce, ktorú už aj tak robíte.
Všetko, čo produkt potrebuje na to, aby sa dal dodať, ale čo vaša definícia zatiaľ nevyžaduje, aj tak musí niekto urobiť. V LeSS od Larmana a Voddeho to má názov: nedokončená práca (undone work), a hromadí sa na nedokončenom oddelení (undone department), v samostatnej skupine QA, v integračnom tíme, u release inžinierov, v stabilizačnom sprinte (hardening sprint) prilepenom pred každé vydanie. Kus práce teda nikdy nie je iba hotový. Je hotový plus nedokončený. To, čo naozaj dokážete dodať, sa rovná vašej Definition of Done plus všetkému, čo ste potichu posunuli ďalej po prúde.
Zamrznutá definícia pôsobí v poriadku práve preto, že tá nedokončená polovica je z miesta, kde tím stojí, neviditeľná. Latku prekonávajú každý sprint a nikdy nevidia, ako sa hŕba nedokončenej práce niekde inde kopí. Stálosť na stene nie je absencia medzery. Je to medzera, na ktorú sa už nikto nepozerá.
Porovnajte to s tímom, ktorý latku stále posúva nahor. Po pol roku pridajú integračné testy. Po roku vyžadujú výkonnostné benchmarky a čistý bezpečnostný sken. Po osemnástich mesiacoch sa každá zmena automaticky nasadzuje na staging so smoke testami. Po dvoch rokoch sa dostáva do produkcie za feature flagom, s nasadenou telemetriou. Každé z tých pridaní robí čosi nepríjemné: spätne premieňa „hotové“ z minulého kvartálu na nedokončené. Práca, ktorá podľa starej definície odišla čistá, je podľa novej definície viditeľne nedokončená.
Tá nepríjemnosť je celá pointa. Definícia, ktorá nikdy nezahanbí vašu predošlú prácu, je definícia, ktorá si prestala robiť svoju robotu.
Najlacnejší spôsob, ako slučku znova naštartovať
Existujú drahé spôsoby, ako naštartovať zaseknutú slučku zlepšovania. Môžete rozbehnúť transformačný program, najať konzultantov, aby posúdili vašu zrelosť, postaviť centrum excelentnosti, zadať audit, kúpiť nástroj, ktorý sľubuje odhaliť plytvanie. Väčšina z toho vyprodukuje reporty. Málo z toho vyprodukuje zmenený systém.
Rozširovanie Definition of Done je iné, a nie preto, že by bolo bezbolestné. Práca, ktorú spustí, je drahá, a má byť. Skutočným nákladom akéhokoľvek zlepšenia je učenie, a odučiť tím od jeho terajších návykov (písať testy, ktoré preskakoval, postaviť linku, ktorú nikdy nemal, preškoliť ľudí, ktorí vždy robili len jednu prácu) je pomalé a ťažké, nech sa k tomu dopracujete akoukoľvek cestou. Ten účet zaplatíte bez ohľadu na to, ktorý nástroj si zvolíte.
Čo k učeniu pridávajú tie drahé cesty, je všetko, čo sa okolo neho obalí: program, posúdenie zrelosti, konzultanti, nástroj, kopa reportov. Rozširovanie definície nepridáva takmer nič z toho. Žiadny nový headcount (počet ľudí), žiadny nový rozpočtový riadok, žiadne výjazdové stretnutie. V krátkej retrospektíve sa dohodnete na jednej veci, ktorú terajšia definícia ešte nevyžaduje, a zapíšete ju. Nástroj je takmer zadarmo. Len odmieta zaplatiť účet za učenie namiesto vás, lebo to nedokáže urobiť nič.
A napísať tú vetu nie je to isté ako splniť ju. Pridať do definície „automaticky sa nasadzuje na staging“ zaberie jednu vetu; postaviť linku, ktorá to spraví pravdou, zaberie týždne. Tá medzera je celá pointa. Od chvíle, keď je veta napísaná, sa každý kus práce drží latky, ktorú tím ešte nedokáže prekonať, a každé rozšírenie vtiahne kus nedokončenej práce naspäť dovnútra tímu: integrácia, ktorá kedysi čakala na samostatnú skupinu, sa teraz musí udiať v sprinte, a nedokončené oddelenie sa zmenší presne o to, čo ste vstrebali. Toto považujem za naozaj užitočné: rozšírenie je diagnóza aj záväzok v jednom ťahu. Ukáže vám, kde je tím slabý, podľa toho, čo nová požiadavka odhalí, a zaviaže tím k drahému učeniu, ktoré medzeru zatvára, namierenému presne tam, kde to produkt potrebuje.
Toto mal Taiichi Ohno na mysli pod pojmom kaizen, zbavený plagátovej verzie. Štandardizujte súčasnú najlepšiu prax, lebo tím bez štandardu nemá od čoho merať svoje zlepšovanie. Potom štandard zlepšite, pozorujte výsledok a nový základ zapíšte ako ďalší dočasný. Veta, ktorá to drží pokope, znie „bez štandardu niet kaizenu“. Veta, na ktorú sa zvyčajne zabúda, je tá druhá polovica: každý štandard je dočasný. Ohno svojim ľuďom hovoril, že si nezaslúžia výplatu, ak nechajú štandardizovanú prácu mesiac nezmenenú. Definition of Done je štandardizovaná práca softvérového tímu a platí pre ňu to isté pravidlo.
A signál je hlasný, lebo definícia sa dotýka všetkého. Metrika na dashboarde potrebuje niekoho, kto ju vyloží. Rozšírená DoD mení to, čo znamená „dokončené“, pre každú položku v backlogu vo chvíli, keď ju zapíšete. Len čo je nová požiadavka v definícii, nie je kam skryť prax, ktorú tím potichu prestal robiť.
Rozširovať smerom k čomu?
Pomáha vedieť, k čomu kráčate, a tu väčšina programov „excelentnosti“ chápe cieľ naopak. Cieľ berú ako maximum: viac kontrol, viac riadenia, viac brán, až kým definícia nie je múrom požiadaviek, ktorý si nikto neudrží v hlave. To je zase ten reflex lokálnej efektivity, leštenie checklistu namiesto produktu.
Aristoteles mal opačnú predstavu. Niečo je úplné, napísal, keď sa už nedá nič pridať a nič odobrať. Dokonalosť je rovnako o tom, čo chýba, ako o tom, čo je prítomné. Pre softvérový tím nie je smer „najdlhšia možná Definition of Done“. Bližšie je k dokonalej Definition of Done: každý deň sa celý produkt dá dodať, bez zvyšnej nedokončenej práce a bez kroku, ktorý neslúži zákazníkovi. Väčšina rozšírení vás k tomu posúva tak, že požiadavku pridá. Niektoré vás k tomu časom posunú tak, že ju odoberú: manuálna kontrola, ktorú ste kedysi potrebovali, sa stane automatickou, takže z definície zmizne celkom.
Nikdy nedorazíte. To je zámer. Tá vízia je smer na kompase, nie míľnik. Medzera medzi dnešnou definíciou a produktom hotovým je vaša nedokončená práca, a pointa toho, že držíte nedosiahnuteľný smer, je v tom, že medzera sa nikdy celkom nezatvorí, takže ťah k zlepšovaniu sa nikdy nevypne. Dosiahnuteľný cieľ sa dosiahne, a potom sa zlepšovanie zastaví, čo je presne ten múr, do ktorého narazil tím, ktorého definícia sa celý rok nepohla.
Prečo ju tímy aj tak zamrazia
Ak je ten nástroj taký lacný a taký užitočný, zaujímavá otázka znie, prečo po ňom tak málo tímov stále siaha. Náklady na učenie sú časťou odpovede a sú reálne. Ale nie sú celou odpoveďou, lebo tímy definíciu zamrazia aj vtedy, keď by si ďalší krok mohli dovoliť. Zvyšok je politika, a je racionálna.
Rozšíriť Definition of Done znamená postaviť sa a povedať, že práca, na ktorej sa všetci zhodli, že je hotová, teraz hotová nie je. Robí nedokončenú prácu viditeľnou, a tá viditeľnosť je drahá. Niekto tú prácu nahlásil ako dokončenú. Niečí status, niečí release note, niečí sľub stakeholderovi stáli na starej definícii. Keď zdvihnete latku, spätne premeníte tie hlásenia na priveľmi optimistické a ľudia, ktorí ich dali, to pocítia. Tím, ktorý zamrazí svoju DoD, sa nevyhýba námahe. Vyhýba sa rozhovoru, v ktorom sa „hotové“ z minulého kvartálu otvorí nanovo a hŕba nedokončenej práce sa pomenuje nahlas.
Preto tento nástroj potrebuje krytie zhora. Tím bude definíciu rozširovať len vtedy, ak ľudia, ktorým sa zodpovedá, znesú viditeľnú nedokonalosť: ak „toto kedysi prešlo a teraz neprejde“ čítajú ako to, že slučka funguje, a nie ako to, že tím cúva. Tam, kde tá tolerancia chýba, sa tímy poučia rýchlo a definície sa prestanú dotýkať, nie preto, že latka je správna, ale preto, že hýbať ňou je nebezpečné. To zamrazenie je rozumná reakcia na manažéra, ktorý trestá zdanie nedokončenosti viac než fakt stagnácie.
Tak sa znova zamyslite nad tímom s tým dobrým zoznamom na stene. Ich definícia sa osemnásť mesiacov nepohla a oni si tú stálosť vykladali ako kvalitu. Lenže stálosť im to povedať nemôže. Zamrznutá latka je presne to, čo by skrylo hŕbu nedokončenej práce kopiacu sa ďalej po prúde, a zároveň presne to, ako by vyzeralo skutočné majstrovstvo. Zvnútra miestnosti sú obe na nerozoznanie. Jediný spôsob, ako zistiť, v ktorej z nich žijete, je zdvihnúť latku a pozrieť sa, čo zlyhá.
Otázka, ktorú si vezmite do najbližšej retrospektívy, neznie, či je vaša kvalita dobrá. Že je vaša kvalita dobrá, je presne to, čo cíti zaseknutý tím. Otázka znie, kedy vaša Definition of Done naposledy narástla, koľko nedokončenej práce sedí ďalej po prúde od nej a či má niekto v miestnosti dosť autority na to, aby nepríjemnosť z pomenovania toho urobil bezpečnou. Ak nikto, tak tá stabilita na vašej stene nie je hotový produkt. Je to slučka, ktorú ste potichu vypli.