Pojmy ako SCRUM či AGILE sa v dnešnej dobe začlenili do slovníka takmer každého, kto prichádza do kontaktu s IT vývojom. Stali sa totiž modernými, človek pri nich spozornie. Niekedy sa im prepožičiava mystická moc, stačí totiž napríklad povedať, že robíme SCRUM a hneď na papieri vyzerá všetko lepšie. Z ich rastúcou popularitou sa objavujú rôzne nástroje, ktoré nám podľa ich tvorcov ešte viac zjednodušia život, ešte viac zefektívnia naše procesy. Avšak tak ako sa dá nesprávne praktizovať metodológia, ako tím môže byť viac utáraný ako agilný, tak je možné sa zamotať v spleti vylepšení, ktoré nám tieto nástroje poskytujú. Ako to teda je?
Prečo používať nástroje pre agilný vývoj?
Moja cesta nástrojov pre agilný vývoj začala na papieri, pokračovala v excelovskom dokumente, prešla si cez testy v skúšobných verziách rôznych nástrojov až na teraz dorazila do zastávky komplexného nástroja, ktorý používame nielen pre scrum, ale aj ako bug tracking systém, úložisko údajov a spôsob komunikácie so zákazníkom. Prejsť týmito krokmi ma nehnala iba potreba zefektívniť proces, ale ako to často býva, boli tu manažéri, ktorí nedôverovali procesu, chceli vedieť hneď všetko a teraz a boli tu aj nedôverčiví kolegovia, ktorí pokladali scrum za len akúsi zábavku. To všetko by sa dalo zhrnúť do nasledujúcich dôvodov či potrieb mať nástroj, ktorý umožňuje:
- Zhromaždenie údajov (story, úlohy…)
- Plánovanie
- Jednoduché reportovanie
- Sledovanie progresu tímov
- Zvládnutie tímov, ktoré nie sú v tej istej lokácii
Pozrime sa na to! Aké sú výhody a nevýhody?
Nič nie je absolútne a aj preto majú tieto aplikácie, či nástroje svojich zástancov, no aj radikálnych odporcov. Dalo by sa povedať, že trend používania elektronických agilných nástrojov je dvojsečná zbraň. Na jednej strane totiž umožňuje tímom viac spolupracovať, vývoj je otvorený a transparentný, no na druhej strane podkopáva niektoré zásady, keďže transformuje všetky úkony do presnej, špecifickej a nemenitelnej softvérovej podoby.
Jedna z nesporných výhod používania nástrojov je, že pomáhajú komunikácii a umožnujú členom tímu vidieť do stavu projektu počas celého jeho trvania. Zástancovia takéhoto prístupu by isto povedali, že to zvyšuje tak výkonnosť ako aj sústredenosť tímu na jeho cieľ. Že je takisto dobrým spôsobom ako viac zviditeľniť postup tímov zákazníkovi a tak pozitívne ovplyvniť jeho spoluprácu a požiadavky. To všetko by malo prispieť k dodaniu dobrého produktu v malých a funkčných inkrementoch až po finálnu podobu.
Z mojej osobnej skúsenosti je výhodou, že každý na projekte je v reálnom čase a hneď schopný vidieť čo je v akom stave, kto na čom pracuje a ako sa držíme plánu. Pri nedočkavom manažmente, ktorí môže byť na druhom konci sveta, je výhodou, že sa môže jednoducho pozrieť do aplikácie miesto konferenčných hovorov či urgentného emailu, na ktorý treba hneď odpovedať. Nedotknuteľnosť tímu počas šprintu ostáva totiž často iba na papieri či v rozhorčenom pohľade scrum mastera.
Dalo by povedať, že zmienené nástroje môžu pomôcť pri osvojovaní si agilných metodík, keďže často poskytujú intuitívny návod či podrobné kroky ako postupovať. Programátor je takto nepriamo vedený rozmýšľať viac agilne.
Po takomto optimistickom úvode by sa poniektorí mohli nadchnúť a opäť považovať všetko za vyriešené ešte predtým, ako si to vyskúšali. Používanie týchto nástrojov môže mať aj nezanedbateľné nevýhody pri ich nesprávnom používaní. Niektoré z prvých protiargumentov odporcov by zneli asi takto:
- Ak je agilný prístup o flexibilite a schopnosti sa adaptovať, ako môže nejaký nástroj dodaný tretou stranou spĺňať tieto podmienky?
- Ak všetci ostaneme pri počítačoch bude to viac kontraproduktívne. Kde ostane brain-storming? Kde bude vlastne tím mimo jeho názvu v aplikácii?
- Ak budeme všetko vpisovať do nejakého programu, nezaberie to viac času ako keby sme to proste prediskutovali?
Takéto otázky sú na mieste a to opodstatnene. Prvý argument obstojí pri nástrojoch, ktoré poskytujú iba základné a nemeniteľné prvky. Tie sofistikované sa však dajú modifikovať a prispôsobiť potrebám používateľov.
Je takisto pravdou, že nie všetko sa dá nahradiť a nie vždy by sme sa o to mali pokúšať. Odbiť daily meeting oznamom na elektronickej nástenke sa nedá, naplánovať niečo bez toho, aby sa členovia tímu stretli je priam nepredstaviteľné. Prvým krokom človeka, ktorý začal nejaký nástroj používať, je uvedomiť si že nástroj je pomoc a nie náhrada agilného vývoja.
Čo sa týka spisovania kvánt informácií do aplikácie, posielania si hromady odkazov či správ, často zdôrazňujem, že je potrebné uvedomiť si čo má naozaj význam zapísať a na čo je jednoduchšie sa opýtať a vydiskutovať si to. Pomôže ľahká matematika. Ak mi má zabrať spísanie problému, výroba obrázkov, popis ako sa k danej situácii dostanem, pričom odpoveď bude áno alebo nie, 15 minút a jednoduché zodvihnutie sa zo stoličky či len otočenie s vysvetlením a ukázaním prstom na monitor 2 minúty, vieme si domyslieť, ako môže nejaký nástroj skomplikovať život. Na druhej strane, ak obdobu tejto otázky položím 10-krát denne a každý deň….
Osobne som veľký zástanca toho, keď tím sedí spolu. Nie je nad takýto druh komunikácie, súžitie tímu. Môj názor preto je, aplikácie ako sposôb komunikácie áno, ale vždy len do určitej miery.
Nástroje pre agilný vývoj na trhu
Pokiaľ strávite trochu času vo vyhľadávači zistíte, že ponuka je široká, nástrojov je veľa a vy stojíte pred otázkou, ktorý si vybrať. Samozrejme, že každý je podľa jeho výrobcu ten správny a najlepší. Len pre informáciu, tu je niekoľko z nich: OnTime, 21 Scrum, Acunote, Agile Agenda, Agile Bench, Agile Buddy, Agile Fant, Agile Log, Agile Manager, Agile Zen, Banana Scrum, Base Camp, Agile Express, Fire Scrum, Jira (Greenhopper), slovenský ScrumDesk a veľa iných.
6 krokov k výberu správneho nástroja
Tak ako si vybrať ten správny? Urobil som si krátky prieskum a z rôznych odporúčaní a vlastných skúseností by som odporučil nasledovné:
1. Začnite bez nástroja. Aby ste si mohli správne vybrať musíte najprv rozumieť metodológii, musíte vedieť čo očakávať a čomu by ste sa mali vyhnúť. Majte na pamäti, že každý nástroj implementuje rovnakú metodológiu trochu odlišne.
2. Perá a papiere. Výskúšajte si to. Téoria je vec pekná, prax ešte krajšia. Predtým ako sa začnete škriabať po hlave ako a kde sa prihlásiť, čo nastaviť a ako je to vlastne cele myslené, vyskúšajte si to.
3. Začnite s niečím jednoduchým. Kúpiť hneď niečo robustné, komplikované a nakoniec to zahodiť. Skúste nejakú jednoduchú aplikáciu založenú na kartovom systéme, či len pozmeňte spôsob ako používate GoogleDocs alebo Wiki.
4. Poobzerajte sa naokolo. Nepoužívate už náhodouniečo, kde je potrebné doiništalovať plug-in, alebo naopak, nehľadáte práve aj iné nástroje pre iné účely? Na trhu je viacero komplexných balíkov, ktoré sa dajú využiť nie len pre účely agilného vývoja, no podporujú ho.
5. Rozhodujte sa obozretne. Ak ste si prešli predošlými bodmi, už máte predstavu čo potrebujete a prečo. Neunáhlite rozhodnutie, urobte si riadny prieskum, je totiž pravdepodobné, že s nástrojom po jeho zakúpení budete pracovať ešte dosť dlho.
6. Riadny tréning. Nepodceňujte školenie a riadnu prípravu. Nespoliehajte sa na intuitívnosť nástroja a ani na samovzdelávanie členov tímu. Je potrebné, aby členovia tímu vedeli kedy a ako nástroj používať a hlavne, aby im to nezaberalo zbytočný čas.
Pár viet na záver
Agilné nástroje v elektronickej podobe môžu byť naozaj užitočné. Mali by sa využívať iba vtedy, keď im ich používatelia rozumejú a majú niekoho, kto im vie poradiť. Vedia byť prínosom pre projekt, zrýchliť vývoj, byť cenným prostriedkom získavania informácií. Nemali by však nahradiť proces ako taký, či stať sa tak komplexnými, že spomalia všetkých a všetko. Nie je totiž vždy najlepšie pokryť úplne všetko, no mať stabilný, primerane jednoduchý a rýchly spôsob ako zefektívniť prácu, je na nezapletenie vždy.About author: Peter Šinkovič is certified Scrum Master (CSM) and works as a Solution Developer Expert at Erste Group IT. He is member of Agilia and organizes community events in Slovak Republic. .