Transparentně a efektivně. Kdy hotovo znamená hotovo?
Šestý díl seriálu o agilním řízení, který se zaměřuje na techniky, jež dokážou proměnit velké týmy a složité projekty v efektivní a spolupracující systémy. Jako další přichází na řadu metoda zvaná definition of done.
V agilním světě, a zejména v metodice Scrum, je definition of done dalším nenahraditelným nástrojem pro zajištění kvalitního a efektivního vývoje softwaru.
Co definition of done představuje?
Jedná se o soubor jasně definovaných kritérií, která musejí být splněna, aby mohl být produkt považován za dokončený. „Done“ máme tehdy, když každý inkrement, každá nová funkcionalita jsou připraveny k nasazení do ostrého provozu bez jakékoliv další práce. Jinými slovy, pokud můžete zmáčknout pomyslné „červené tlačítko“ a přímo releasovat, pak je věc opravdu hotová. Je potřeba dotáhnout byť jen jedinou drobnost? Hotovo není.
Jednou z největších předností definition of done je schopnost učinit celý vývojový proces výrazně transparentnějším. Tradiční modely často trpí tím, že jednotlivé části týmu pracují samostatně v jakési izolaci a soustředí se pouze na svůj úzký segment. Definition of done tento takzvaný silo efekt odstraňuje.
Jasně ukazuje, že hotové není jen otestované na jednom počítači nebo vývojovém prostředí, ale splňuje celou škálu podmínek – od testů, dokumentace až po release notes.
Každé dva týdny release?
Dalším klíčovým principem a přínosem je flexibilita. Nejde tu přitom o to, že musíme každých čtrnáct dní uvolnit novou verzi produktu, ale měli bychom být vždy, každé dva týdny (nebo častěji), připraveni na možnost releasovat.
Taková pružnost, tedy schopnost rychle reagovat na změny na trhu, je pro agilní týmy docela velkou konkurenční výhodou a dává jim svobodu.
Definition of done také podporuje kulturu společné zodpovědnosti. Tým není rozčleněn podle rolí, kde programátor řeší pouze kód, tester pouze testy a dokumentarista jen dokumentaci. Místo toho definition of done nutí jednotlivce spolupracovat, prioritizovat společný cíl a dokončovat úkoly podle aktuální potřeby, nikoliv osobní specializace.
Nezmeškejte žádné novinky ITT
Tento přístup také eliminuje tlak na individuální produktivitu (jsem nejefektivnější, když píšu kód, tak budu především kódovat). Hlavní důraz se klade na dokončení inkrementu, protože každá nedokončená práce blokuje další pokrok (nejefektivnější teď budu, když přispěji týmu k dokončení věci, i když se zrovna budu věnovat činnosti, která není mou primární).
Tým se tak stává efektivnějším, zákazník bude spokojen, protože výsledek dostane dřív, a my dřív dostaneme třeba i zpětnou vazbu. V neposlední řadě se posiluje soudržnost týmu.
Jak vypadá definition of done v praxi? Každý tým si sestavuje svůj vlastní checklist, který zahrnuje veškeré aktivity nezbytné pro dokončení daného inkrementu.
Checklist běžně obsahuje 20 až 30 položek, které se vztahují na každý inkrement. Tento standardizovaný seznam zároveň usnadňuje koordinaci mezi členy týmu a eliminuje šedá místa, kde by mohlo dojít k nedorozumění.
Nezbytná je určitá disciplína a je na týmu si ji postupně vytvořit. To, že dáme tento checklist na interní wikipedii, ještě nezajistí, že podle něj budeme pracovat a odvádět kvalitní práci. Každý jednotlivec si tuto metodu musí vzít za svou a vnitřně ji přijmout – pak si jako tým dokážeme práci dobře zorganizovat a můžeme na ni být hrdí.
To je jeden ze znaků dobře fungujícího agilního týmu. Dalším je, že svou definition of done neustále rozšiřuje o nové aspekty kvality. Jakmile si osvojí disciplínu plnění základního checklistu, začne tým přidávat další požadavky, které ještě více zlepší kvalitu produktu.
Kvalitně odvedená práce i schopnost reagovat na změny
Proces učení a zlepšování je klíčem k dlouhodobému úspěchu. Definition of done vytváří kulturu, kde si týmy zakládají na kvalitně odvedené práci, jsou flexibilní a schopné rychle reagovat na změny. Tento přístup posiluje důvěru mezi členy týmu a zároveň i spokojenost zákazníků.
Definition of done tedy není jen seznam úkolů – je to filozofie, která podporuje transparentnost, týmovou spolupráci a kvalitní výsledky. Je to cesta, jak udržet produkt vždy připravený k releasu, maximalizovat hodnotu pro zákazníky a zároveň neustále zlepšovat schopnosti týmu.