Agilné plánovanie Techniky a princípy plánovania v Scrum Frameworku Peter Backa certifikovaný Scrum Master software developer backa.peter@gmail.com
Obsah prednášky Scrum proces História Scrumu Tradičné verzus agilné plánovanie Princípy agilného plánovania Vízia Product Planning Release Planning Sprint Planning Daily Planning
Scrum proces Scrum je framework – definuje sadu pravidiel, aktivít, rolí a artefaktov v procese vývoja produktov a služieb
História scrumu “The New New Product Development Game” (Hirotaka Takeuchi, Ikujiro Nonaka, 1986) Článok v Harward Business Review, ktorý opisuje ako také spoločnosti ako Honda, Canon a Fuji-Xerox vyvíjajú svoje produkty a využívajú tímovo orientované metódy “Scrum Development Process” (Ken Schwaber, Jeff Sutherland, OOPSLA 1995) Prvá oficiálna publikácia o Scrume Agile Manifesto (2001) Definícia princípov ktoré sa dnes súhrnne označujú ako “Agile Software Development” Agile Allience Nezisková organizácia zaoberajúca sa celosvetovou propagáciou agilných metód Názov “Scrum” sa odvodil zo športu-rugby
Tradičné verzus agilné plánovanie Tradičné plánovanie Agilné plánovanie up-front model striktne sekvenčný model detailné predikčné plánovanie all at once release change management je formálny proces na konci projektu iniciálny plán obsahuje konkrétne aktivity a resources features sa odhadujú v exaktných jednotkách Watterfall, PRINCE2 just-in-time model iteratívny model adapčné plánovanie inkrementálne releases change management je neformálny a sústavny proces Iniciálny plán obsahuje features features sa odhadujú v pomerných jednotkách Scrum
Tradičné verzus agilné plánovanie Cone of Uncertainty Vyjadruje variabilitu premenných ktoré ovplyvňujú plán projektu v čase
Tradičné verzus agilné plánovanie CoU - Watterfall CoU - Scrum
Tradičné verzus agilné plánovanie - Brainstorming Tradičné plánovanie vychádza z predpokladu že premenné scope, date a budget sú fixné a definujú sa v iniciálnej fáze. Agilné plánovanie vychádza z predpokladu že nie je možné všetky tieto premenné fixne definovať v prvotnej fáze vývoja. Ktoré premenné teda majú byť fixné a ktoré variabilné?
Princípy agilného plánovania Prečo potrebujeme plán? Redukcia rizika Zabezpečuje dôveru u zákazníka Definuje víziu produktu Plánuje sa sústavne nie iba na začiatku projektu Plán je po celý čas vývoja produktu otvorený Preferuje sa adapčné plánovanie Zmeny v pláne sa očakávajú v priebehu vývoja Odhaduje sa na základe reálnych historických výsledkov – velocity Frekvenčné a časté releases Team plánuje a odhaduje spoločne Team plánuje a odhaduje na rôznych úrovniach (release, sprint, daily)
Úrovne agilného plánovania
Portfolio planning Strategická úroveň Dlhodobý plán na niekoľko rokov Manažment portfólia firemných produktov Aké produkty sa budú vyvíjať, v akom čase a v akom poradí? Vykonáva sa systematicky a inputom je vízia nového produktu prípadne nové požiadavky Zúčastňujú sa na ňom product owners individuálnych produktov, architekti a manažéri
Product planning Strategická úroveň Dlhodobý plán na niekoľko mesiacov Zúčastňujú sa na ňom product owners, zákazníci a v prípade je zložený development team aj scrum master a ostatní členovia teamu Zahŕňa víziu, features a vlastnosti produktu Výsledkom je vízia, hrubá verzia product backlogu a product roadmap (release roadmap) Product backlog má podobu user stories
Release planning Operatívna úroveň Stredne dlhý plán – 3-9 mesiacov Robí sa pred začiatkom vývoja každého releasu (inkrementu) Zúčastňuje sa ho celý scrum team a zákazníci Inputom je product backlog a velocity Vymedzuje features v product backlogu z hľadiska času a nákladov Ktoré features z product backlogu budú dodané v určenom čase a v rámci dostupných zdrojov – minimum releasable features Výsledkom je release plan Release plán zahŕňa subset features z product backlogu v podobe user stories
Release planning Postup pri časovo orientovanom pláne Vypočítaj koľko šprintov vychádza na release v rámci dostupného času Odhadni velocity (kapacitu) tímu na jeden šprint v intervale Vyrátaj najmenšiu velocity tímu na celý release Vyrátaj najväčsiu velocity tímu na celý release Vyber z product backlogu “will-have” PBI a odhadni ich veľkosť v storypoints Vyber z product backlogu “might-have” PBI a odhadni ich veľkosť v storypoints
Release planning Postup pri features orientovanom pláne Vyber z product backlogu “must-have” PBI a odhadni ich veľkosť v storypoints Odhadni velocity (kapacitu) tímu na jeden šprint v intervale Vyrátaj najmenší počet šprintov – optimistický odhad Vyrátaj najväčší počet šprintov – pesimistický odhad
Release planning - Brainstorming Ako škálovať release plan? Väčší scope alebo menší scope? Je vhodné vopred priraďovať PBI do sprintov?
Sprint planning Operatívna úroveň Krátkodobý plán – 1-4 týždne Robí sa pred každým šprintom Zúčastňuje sa ho celý scrum team vrátane scrum-mastera Výsledkom je sprint goal a sprint backlog Sprint backlog zahŕňa subset features z release plánu v podobe user stories vrátane potrebných taskov na ich implementáciu
Sprint planning Postup Vyrátaj kapacitu teamu na nasledujúci šprint po zohľadnení výpadkov Definuj sprint goal – jednoduchý opis cieľu pre aktuálny šprint Vyber PBI podľa priority a dostupnej kapacity Vytvor k vybraným PBI tasky Odhadni veľkosť vytvorených taskov v časovej jednotke – effort hours Pokračuj s pridávaním PBI pokiaľ sa nenaplní kapacita Výsledkom je sprint-backlog
Sprint planning
Sprint planning Výpočet kapacity teamu Buffer Výpadky (dovolenka, sviatok) Ostatné aktivity spojené so šprintom (planning, review, retrospective, PB grooming) Zostáva kapacita na realizáciu PBI
Sprint planning - Brainstorming Definition of done pre UserStory – ktoré typy aktivít je treba naplánovať v sprint backlogu?
Daily planning Operatívna úroveň Zúčastňuje sa ho scrum master a development team Výsledkom je plán práce na dnešný deň Slúži na synchronizáciu taskov medzi členmi development teamu