Scrum

Je agilná metóda vývoja softvéru, ale môže sa používať na koordináciu ľudí aj v ne-softvérových projektoch. Dôraz je kladený na priebežné výsledky, silu tímu a komunikáciu.
Plánovanie
Na začiatku projektu sa robí plánovanie na nejaký celok. V projektoch spravidla na celú dobu, do kedy je jasná vízia (napr. výroba stránok), alebo kontinuálna (napr. údržba stránok) vždy po nejakej vopred stanovenej dobe, kedy to má zmysel a do kedy sme schopní viac-menej predvídať. Nemá cenu plánovať na päť rokov dopredu.
Pri plánovaní sa vždy vezme celá vízia a rozoberie sa na menšie celky (story), tak aby bol vždy jasný výsledok. Neriešia sa technické veci, ako čo spraviť. Každý z týchto prvkov musí mať jasný výsledok, tak aby bolo jasné, kedy je hotový. Ak story nemá jasný výsledok, nemôžeme si byť istí, že všetci majú namysli to isté. Potom sú tieto story usporiadané podľa priority, kedy žiadna by nemala mať rovnakú prioritu ako iná, aby bolo jasné, ako sa bude postupovať. Spravidla sa ale pracuje na viacerých strory súčsne. Posledná vec, ktorú je treba spraviť je odhadnúť, koľko času za ideálnych podmienok, ktorá story zaberie. Toto musí korešpondovať s časovými možnosti na tú zvolenú dĺžku cyklu. Ak si napr. poviete, že daný projekt budete len udržiavať, tak kľudne zvoľte čas pol roku a v rámci daného polroku si na to vyčente len 30 dní. Súčet odhadov potrebných krokov vtedy nesmie presiahnúť oných tridsať dní.
Po konci tohto veľkého obdobia sa vyhodnocuje čo sa podarilo, čo sa nepodarilo, čo by sa malo zlepšiť, kde bol zádrheľ a tak podobne. Spravidla sa to robí pred ďalším plánovaním tak, aby sme si z toho mohli vziať ponaučenie do ďalšieho obdobia. Tiež je to skvelá príležitosť osláviť uplynulý čas ;-)
Cyklus (Sprint)
Je to pravidelný (v Kerio dvojtýždňový) cyklus počas ktorého je cieľom, aby sa vybrané časti projektu dokončli. Na začatku sa spraví scrum meeting, kde si ľudia (spravidla podľa priorít) vyberú, ktoré stories dokonča v rámci daného sprintu. Tieto vybrané stories rozdelia do menších ešte detailnejších častí - úloh/taskov. Každý si vyberie niekoľko konkrétnych úloh a spoločne odhadnú, koľko hodín bude trvať dokončnie každého z nich. Na upresnenie odhadov sa používa skupinová diskusia, čo pomáda upresniť odhady a zároveň si ujasniť ako kto chápe danú úlohu. Ak sa odhady časov zásadne líšia, je pravdepodobné, že zadanie nechápu rovnako a tu majú príležitosť si to vyjasniť. Odhaduje sa s ohľadom na reálne podmienky - keď má niekto napr. ťažšie obdobie, plánuje dovolenku, prípadne pracuje na ďalších projektoch, naplánuje si menej úloh. Úlohy si ľudia vyberajú sami, nie sú im priraďované nikým iným. Úlohy sa vyberajú s ohľadom na to, že niektoré sa nemusia stihnúť, takže sa zvyčjne najprv rieši niekoľko "must" a potom "nice-to have" úloh. Každý potom pracuje na svojich úlohách. V spoločom systéme (v niektorých oddeleniach vo forme papierikov na nástenke) sa eviduje, v akom stave sú ktoré úlohy. Stavy sú: 1. todo - treba spraviť, 2. proces - pracuje sa na tom, 3. done - hotovo. Eviduje sa aj kto má danú úlohu priradenú.
Na konci sprintu je hodnotiaci meeting kde sa zhodnotí čo sa podarilo, čo nie a čo sa nabudúce spraví inak. V Kerio majú pravidlo, že každý musí povedať jednu pozitívnu vec. Na konci sa musí ukázať niečo hotové. Tu sa sumarizuje, kto mal ako realistické odhady a vypočítava sa tzv. velocity (rýchlosť). Je to koeficient realistickosti odhadov. Vypočítava sa ako pomer súču odhadovaných hodín všetkých taskov, ktoré si daný čovek naplánoval k súču odhadovaných hodín taskov, ktoré dokončil. Keď si napr. čovek naplánuje, že dokončí task1, ktorý odhadne na 40 hodín, task2, ktorý odhadne na 5 hodín a task3, ktorý odhadne na 2 hodiny a do konca cyklu zrealizuje task1 a task3, tak jeho rýchlosť je (40+5+2)/(40+2) = 47/42. Jeho ďalšie odhady sa potom násobia týmto koeficientom. V Kerio sa ukázalo, že dlhodobo majú priemerný koeficient 0,7. Nikto neeviduje koľko hodín reálne odpracoval, odhady spresňujú pomocou tohto koeficientu a skupiny.
Ak by klient zmenil zadanie v strede cyklu, spraví sa preplánovanie. Na začatku spolupráce sa experimentuje s dĺžkou sprintu, keď sa napr. ukáže, že 2 týždne sú málo, zväčší sa.
Vo full time práci sa každý deň konajú stand-up meetingy, kedy každý povie, čo spravil včera a čo bude robiť dnes tak, aby se aktuálne problémy mohli ihneď riešiť, aby bolo vidieť ako sa v rámci sprintu posúvame, aby jednotliví ľudia mali jasno vo svojich záväzkoch a aby vedeli, že keď to nesplnia, budú to musieť vysvetľovať (dobrý psychologický prvok). Tento meeting by nemal trvať dlhšie ako 15 minút. Konkrétnejšie otázky resp. problémy sa potom riešia individálne, aby sa nezdržiaval zbytok tímu.
V distribuovanom týme to je to trochu problém, preto som to vynechal. Tam je lepšie zvoliť kratšie sprinty.
Kedykoľvek sa vyskytne ďalšia úloha (napr. upgrade serveru, aby stíhal požiadavky), je to pridané do Strory a priradená priorita.
Dôležité role
Product owner(klient) - ten kto vie čo chce. Ak nie je súčsťou tímu a nechceme ho každý deň otravovať, stanoví sa člen tímu, ktorý ho bude suplovať vo vnútri. Musí byť prítomný na vyhodnotení a plánovaní sprintu, aby mohl tím korigovať a prípadne prehodnotiť priority.
Scrum master - čosi ako koordinátor. Nie je to šéf, ale pomáhač, odstraňuje ľuďom prekážky v práci, stará sa aby mali všetko čo potrebujú, nesmie trestať. Má na starosti aby veci boli reálne, drží klienta pri zemi. Organizuje každý scrum meeting. Spravidla je to čen vývojového tímu, takže je aj vykonávačom niektorých úloh. Nerieši všk osobný rozvoj ľudí, stará sa o proces, ale nie o tím.
Zodpovednosť
Systém je založený na dobrovoľnosti, sebariadení a zodpovednosti. Ľudia s väčšou pravdepodobnosťou v dohodnutom čase dokončia úlohy, ktoré si vybrali sami, oproti úlohám, ktoré im pridelil niekto iný. Pokiaľ ľuďom tento systém nevyhovuje, tak nemá zmysel. Chlapíkovi na začatku skúšobnej doby povedali: "Ak sa ukáže, že budeš potrebovať nad sebou manažéra, ktorý ti bude musieť prideľovať úlohy a kontrolovať ťa, budeš musieť odísť!"
Tiež je založený na komunikácii. Kedykoľvek je nejaký problém, nenechávať si ho pre seba! Nie je jasné čo se má robiť? Nenechať si to pre seba a snažiť sa to vyjasniť. Keď to čovek nejako spraví podľa seba, je veľká šanca, že to bude musieť prerobiť a to zaberie dvojnásobok času.