Vodopád, Agile a ten tretí

dfsakldfja25Ak ste súčasťou vývoja softvéru, asi ste počuli o vodopádovom modeli. Je to pomenovanie pre metódu riadenia pozostávajúcu z jednotlivých za sebou nasledujúcich krokov vývoja (zber požiadaviek, analýza, návrh atď.). Je dosť možné, že ste už tiež počuli o agile. O tých divných metódach, kde za jedným počítačom môžu sedieť dvaja a každý deň sa stojí na porade. A to by mohlo byť o riadení projektov všetko. Ale nie je. Je tam ešte tretia metóda. Má mnoho foriem a žiadne oficiálne meno, ale ja jej budem hovoriť chaos. Toto je príbeh o troch svetoch, v ktorých môže žiť softvérový projekt.

Vývojári a zákazník môžu mať v určitom smere protichodné záujmy. Hlavne čo sa týka pružnosti vývoja softvéru. Prvý svet je svet vodopádu a zmrazených, nehybných požiadaviek. Je to svet vývojárov, kde sa všetky zmeny pekne rozanalyzujú a zapracujú. Všetko má svoj prísny poriadok, vždy je jasné, čo bude nasledovať na celej dĺžke plánu. Je to svet, kde zákazník ledva prežije. Najprv je nútený pomerne presne odhadnúť pol roka alebo rok dopredu, čo bude chcieť a potom začne byť jeho hlas ignorovaný alebo potláčaný. A niekedy až po roku zistí, čo si to dal vlastne vyrobiť (a že chcel niečo tak trochu iné)

Na druhej strane tejto pomyselnej planéty projektov je svet plný ohňa, výbuchov a neustálej zmeny. Je to svet, kde kríza strieda krízu, kde sa požiadavky menia z hodiny na hodinu. Je to svet, kde je softvér samá záplata a hack, až vyzerá ako narýchlo zbitá búda. Je to svet zákazníka a meniaceho sa trhu, kde jeden ASAP strieda druhý. Je to svet, kde vývojár ledva prežije. Neexistuje žiaden pevný systém, ktorého by sa mal držať. Nemôže uvažovať strategicky, lebo nikdy nevie, čo bude zajtra, a už vôbec nie o týždeň, mesiac. Je nútený robiť len nevyhnutné zmeny v kóde, len toľko, aby to fungovalo a môžeme ísť ďalej. Takto vzniká technologický dlh, ktorý spôsobuje, že riešenia sú čím ďalej tým viac skratkovité, kód sa len viac a viac zauzľuje, tie isté problémy sa na rôznych miestach riešia rôzne a kódom sa ako nepríjemný smog rozlieza duplicita.

Ak by ste si nakreslili na mapu tieto dve svety a spojili ich priamkou, niekde uprostred by ste našli agile. Agile je krok od vodopádu smerom k zákazníkovi a krok od chaosu smerom k vývojárovi. Je to kompromis. Zatiaľ čo svet vodopádu je nehostinný pre zákazníka a svet chaosu pre vývojára, je agile prostredie, v ktorom dokážu prežiť obaja. Na jednej strane poskytuje vývojárovi systém, v rámci ktorého vie fungovať, plánovať zmeny a mať aspoň čiastočne stabilné požiadavky. Na druhej strane umožňuje zákazníkovi meniť priority pre krátkodobé cykly, získavať prehľad, čo sa vyrába a môcť to pripomienkovať. Aj preto je svet agile tak trochu divný. Je to hybrid. Kompromis. Nie je úplne prirodzený ani pre vývojára ani pre zákazníka. Je to ale niečo, s čím sa dá dlhodobo prežiť na obidvoch stranách.vodopad.agile.chaosKeď sa rozhodnete prejsť na agile, čaká vás zodpovedanie niekoľkých otázok. Viem určite o dvoch otázkach, ktorým sa nevyhnete. Jednej ľahkej a jednej ťažkej. Tá ľahká znie: Kam sa chcem dostať? Je ľahká preto, lebo informácií o tom, ako by mal vyzerať agile, je už dnes obrovské množstvo. Detaily sa nemusia s vaším prípadom zhodovať, ale ak správne zavediete základnú štruktúru, doplnia sa sami. A teraz tá ťažká: Kde vlastne som? Toto je ozajstný oriešok. Žiadna kniha, návod alebo prezentácia vám s ňou pomôže. Jediným človekom, ktorý na to vie odpovedať, ste vy. Nedarí sa vášmu obchodu? Asi žijete vo svete polárneho ľadu a mali by ste sa vydať smerom k rovníku. Obchod je fajn, ale vývojári sú nejakí zničení a stále hasíte nejaký požiar? Asi žijete vo svete horúceho trhu a mali by sa ste zamieriť do miernejších pásiem.

Ujasnenie týchto otázok je pre úspešnú transformáciu na agile kritické. Keď viete kde ste a kam chcete ísť máte body dva s ich vzájomnou polohou a teda mapu! A s mapou sa vždy cestuje ľahšie…