Agile!!!! Je waterfall opravdu mrtvý?

Agile!!!! Je waterfall opravdu mrtvý?

Je Agile skutečně lék na všechno? A Waterfall je to nejhorší, co nás mohlo potkat? Podle mě je každý dogmatický a extrémní přístup špatný. Raději používám selský rozum a vybírám to nejlepší pro konkrétní případ. Přečtěte si, proč si to myslím.

Poslední dobou se hodně mluví o Agilu (v tomto příspěvku myslím především Scrum) a mnohdy mi přijde, že Waterfall je braný jako sprosté slovo, které už bych se pomalu měl bát vyslovit, abych si neudělal mezi lidmi ostudu. Ale je to tak opravdu?

No podle mě prostě ne. Každý z těchto přístupů je vhodný na určitý typ úloh, má své místo a my bychom měli vždy na danou úlohu nebo typ projektu vybrat ten správný přístup. To je přece z obecného pohledu Agilní, ne? Nebo je více Agilní dělat všechno ve Scrumu, i když to moc nedává smysl?

Agile přináší hodně dobrých věcí a boří hranice mezi IT a businessem, což je určitě super! Nemá smysl opakovat přínosy Agilu, ale jak Agile, tak i Waterfall se dá dělat dobře a špatně. Všechno je to především o lidech, prostředí, kultuře a schopnosti fungovat jako tým a ne skupina jednotlivců. Navíc v dnešní době se už ani tak nebavíme o čistém Waterfallu, ale o hybridu, kde jsou kombinovány oba přístupy a kde je možné využít to nejlepší z obou. Nic mi přece nebrání ve Waterfallu mít společný tým s businessem, jet v rychlých iteracích, maximálně využívat prototypů (MVPéček), CI a CD, dobře a efektivně prioritizovat, mít flexibilní change management, a v rámci týdenních statusů zahrnout i review a retrospektivu.

No a teď to hlavní, co je podle mě klíčové pro výběr toho správného přístupu. V tomto případě se budu bavit primárně o scopu dané aktivity nebo projektu. Pokud budu mít víceméně jasný scope, ze kterého nemám moc kam utéct a bude se jednat o komplexní složitou úlohu, kde je hodně neznámých, tak je to podle mě jasný kandidát na Waterfall (jasně že ten vylepšený. :-)).

Vezměme si třeba výměnu corebankingu nějaké velké banky, kde nad tím jsou desítky až stovky aplikací s mnohdy ne úplně zdokumentovanými interfacy. Kdy předem budete muset důkladně zanalyzovat stávající a budoucí funkční potřeby, aby bylo možné vůbec vybrat nový systém. Potom bude nutné provést další technickou část analýzy, abyste věděli, co a jak předrátovat a podle toho naplánovat potřebné práce, aby zapadaly do releasů jednotlivých aplikací a systémů a aby si to celé časově sedlo. K tomu rozsáhlé a komplexní testování, včetně složité přípravy prostředí. Ještě zbývá konverze dat a možná i nějaký paralelní běh obou core systémů zároveň. Teď to celé ještě odhadnout (jasně že to bude nakonec úplně jinak), naplánovat a zabookovat si potřebné zdroje všude, kde budete potřebovat. Samozřejmě těch pár korun bude potřeba také schválit na příslušných místech. No a k tomu všemu dobře pracovat s rezervou, jak časovou, tak i finanční, protože odhady a plány jsou jedna věc, ale realita je věc druhá a v tomhle případě to bude platit dvojnásob.

Chápu, že někdo může namítnout, že tohle je extrémní případ, ale zase je na něm dobře vidět, že někdy jsou prostě věci hodně složité, a navíc nejde uhnout ze scopu a udělat toho třeba 70 %. A to jsou podle mě typické příklady, kdy bych si raději vybral Waterfall. A někdo třeba také řekne, že by to nějak šlo řešit v Agilu formou Enablerů a ve finále má také pravdu, ale ve finále by průběh byl prakticky stejný jako Waterfall.

Na závěr bych řekl „Používejme ten přístup, který má v daném případě největší smysl, to je podle mě Agilní...“

04.10.2018
Honza - tým jobstack.it