SCRUM a SMART: Jak to děláme, že nejsme přepracovaní
Aby mohl vývojář pracovat dobře a v klidu, nesmí na něj padat několik projektů současně. A nesmí se mu měnit priority a zadání pod rukama. V AIMTECu to řešíme tím, že máme důsledně zavedený SCRUM.
V praxi to znamená, že pracujeme ve 14denních iteracích. Dva týdny se nám osvědčily nejlépe. Důležitá je pro nás pravidelnost a to, že je interval pořád stejný.
Všichni tak stále vědí, co bude dál. A nemůže se stát, že programátorovi přistane v e-mailu záplava práce v pátek odpoledne.
Pondělí: Připravujeme iteraci
V pondělí vlastně neprogramujeme. Startujeme tím, že se sejdou projektové týmy a plánují nadcházející iteraci. Zadavatelé, naši konzultanti, předávají informace vývojářům. Aby mohli všichni na projektu odvést dobrou práci, musí přesně vědět, co se po nich chce.
Úkoly zadáváme systémem SMART. Každé zadání musí být…
- specifické, konkrétní a jasné
- měřitelné (tedy musí dávat smysl a musí být zřejmé, kolik času asi úkol zabere)
- adekvátní a dosažitelné (pro konkrétního člověka)
- realistické
- termínované
Klíčový bod je pro nás „měřitelnost“ neboli „akceptační kritéria“ neboli „co bude chtít zadavatel na konci vidět, aby bylo zadání splněno“. Ideálně zadáváme formou příkladu: Když bude takovýto vstup, potřebujeme takovýto výstup.
Od úterý do dalšího čtvrtka: Vyvíjíme
Práci plánujeme v hodinách. Každý úkol má svůj hodinový rozpočet, velké úkoly rozkládáme na malé. Konkrétní úkol v iteraci je již nadále nedělitelný a tudíž maximálně a jednoznačně zadatelný.
Maximum času vymezeného na jeden úkol jsou 2 dny.
Jeden den pro vývojáře znamená 6 hodin naplánované práce.
Nováčci mají na jednotlivé úkoly vymezeno mnohonásobně více času než senioři. Čas se postupně srovnává s tím, jak roste jejich odhodlání a zkušenosti.
Pátek: Uzavíráme, hodnotíme a nabíráme další směr
Na páteční schůzce hodnotíme uplynulou iteraci. Vývojáři předávají informace o tom, co dělali a na co přišli. Snažíme se najít důležité body, na kterých stojí za to pracovat, rozšiřovat je a zohlednit je v budoucích iteracích.
Tohle o našem čtrnáctidenním systému říká Jan Brnka, vedoucí vývoje:
„Chvilku to trvalo, než jsme tuto podobu iterací zavedli. Ale teď se to vyplácí. Pro programátora je důležité, aby vždy věděl na čem a kdy má pracovat. Potřebuje na svojí práci klid a prostor. Časté změny priorit a zadání znamenají nesplnění úkolu a následně celého projektu. Proto je pro nás stabilita iterace základní stavební kámen vývojové metodiky, což respektuje a dodržuje celý tým. Z pátečních retrospektiv vychází zásadní podněty. Hodně jsme na základě toho vylepšili, třeba i strukturu automatických testů a logiku toho, jak je spravovat a jak vidět výsledky.“