Blog archive 2010/11

Scrum - metoda agilního programování

Nov| 5 2010

Scrum je relativně nová metoda agilního programování, která menším týmům dovoluje v krátkých iteracích vyvíjet produkty s dobře odhadnutelnou cenou a podle zákazníkových požadavků. Pojďme se podívat, v čem spočívá kouzlo Scrumu.

Typický model metody Scrum předpokládá menší tým developerů, řekněme sedmičlenný. Jeden člen týmu je tzv. ScrumMaster a pozicí se blíží běžnému projekt manažerovi, nicméně toto označení se pro něj nepoužívá. Další významnou osobou je ProductOwner, který zastupuje stakeholdery, tedy zákazníka, který si daný produkt objednal. Posledním členem Scrum týmu je samotný tým "řadových" vývojářů - důraz na týmovou spolupráci je tu tedy evidentní, nicméně každý člen má velkou volnost a vystupuje vždy sám za sebe.

Veškeré požadavky projektu jsou shromažďovány na tzv. Product backlog, jakési velké, nestrukturované tabuli (klidně virtuální). To je jedna z hlavních výhod Scrumu - máme všechny požadavky na jednom místě a nemusíme je organizovat do hierarchie, jako se vesměs děje u jiných metod.

Dalším podobným instrumentem je tzv. Sprint backlog, který také obsahuje požadavky, ale v menším počtu a patřící do jednoho konkrétního Sprintu (co je Sprint vysvětlím v zápětí).

Scrum Product backlog

Práce v modelu Scrum je rozdělena na iterace, nazvané Sprinty, které trvají zpravidla mezi 1 a 4 týdny. Začátek každého Sprintu začíná výběrem požadavků, které se budou v dané iteraci plnit. Každý den si tyto požadavky ujasní celý tým v krátké (cca 15ti minutové) poradě, která by měla být vždy na stejném místě ve stejný čas. Každý vývojář ostatním v krátkosti řekne, co dělal předešlý den a co ho čeká dnes.

Součástí iterace je i testování a výsledkem každého Sprintu je potom vždy plně funkční produkt, který nicméně neimplementuje všechny požadavky.

Scrum nabízí i jednoduchý prostředek, jakým lze odhadovat množství práce do ukončení projektu, tzv. Scrum Burn down. Jedná se o aproximaci množství zbývajících požadavků, které je přesnější s blížícím se koncem projektu, nicméně již od začátku nám může odhalit nereálnost aktuálního termínu dokončení a můžeme tím pádem provést potřebná opatření včas.

Scrum Burn down

Na závěr bych chtěl zmínit jednu netradiční pomůcku pro týmové porady na začátku Sprintu, konkrétně při odhadování pracnosti jednotlivých požadavků. Jedná se o produkt Planning Poker®, tedy pokerové karty, které obsahují čas úkolu. Autor si všiml, že klasické postupné dotazování jednotlivých členů týmu nejen že ovlivňuje ty ostatní, ale někteří nemusí ani zapojit svůj mozek, pouze zopakují předchozího kolegu.

Pomocí karet, kdy každý musí vybrat odhadovaný čas nezávisle na ostatních, nejen že donutí všechny popřemýšlet, ale nevlivňují se ani mezi sebou. Odhalí se tím pádem případné vélké rozdíly v odhadech, o kterých se může dále diskutovat a odhalit skryté problémy.

Scrum - Planning Poker

Na obrázku karet vidíte i speciální karty s nulou, což znamená buďto hotový nebo velmi jednoduchý úkol, a symbol kafíčka znamená jednoduše "jsem unavený, chce to pauzu". Tímto jednoduchým způsobem může i každodenní porada vývojářů být celkem zábavná a co víc - úspěšnější.

Některé odkazy pro další informace:

Tags: Programování | Vývoj



spucasny stav crm

Nov| 4 2010