Jak využít Kanban při vývoji software

Průměrné hodnocení:

Možná to znáte. Váš tým programátorů vyvíjí skvělou aplikaci a zákazníci po ni šílí. Vše šlape jako hodinky a jak roste zájem, tak se rozrůstá také váš tým a robustnost aplikace. Najednou však začínáte pozorovat, že rychlost vývoje zpomaluje, objevuje se čím dál více bugů a levá ruka často neví co dělá pravá. Mnoho lidí si v takové situaci řekne, že přišel čas uchopit vývoj více metodicky a rozhodne se implementovat SCRUM, protože se o něm všude mluví. SCRUM je skvělá metodika vývoje software, která však přináší změny nejen na úrovní vývojového týmu a řada firem při jeho implementaci ztroskotá.

Pokud chcete, aby tým fungoval více efektivně, agilně, je potřeba mu nejprve položit základní stavební kameny a těmi může být Kanban. Kanban těžko volat metodikou, je to spíš sada principů regulující workflow tak, aby každý věděl v jakém stavu jsou rozdělané úkoly, minimalizovalo se množství nedodělané práce a posílila se samostatnost týmu.

Vizualizace workflow je pro Kanban zcela klíčová. Následující dva příklady nám pomohou dostat se rychle do obrazu. Podívejte se na 10 vteřin na tabulku níže a pak pokračujte ve čtení.

Obrázek K článku Tabulka

Všimli jste si následujících věcí?

·         Vše co jde do Testu je blokováno

·         Mnoho věcí je rozdělaných, ale žádná hotová

·         Šimon dělá v jednu chvíli na více úkolech najednou

A teď se dívejte 10s na následující obrázek.

Obrázek K článku

Co tedy tým nakonec udělal?

·         Jak je vidět, nemá smysl pokračovat ve vývoji a poslat úkoly do zablokovaného Testu. Tým proto opustil od rozdělané práce a pomohl Robertovi a Albertovi s problémy v Testu a úkoly tím dokončit.

·         Nově uvolnění Robert a Albert pomohli Šimonovi, aby nemusel dělat na více věcech najednou a dotáhli úkoly do Testu.

Lidský mozek má výjimečnou schopnost analyzovat vizuální informace, ovšem s analýzou dat je to horší. Umístění kanban boardu na stěnu, pomůže týmu být neustále v obraze, na nic nezapomenout, usnadní rozhodování a dodá pocit jistoty, že má vše pod kontrolou.

Jednou jsem slyšel přirovnání, že tým bez vizuální tabule je jako fotbalisti s koňskými klapkami na očích. Vidí jen před sebe na vzdálenost jednoho metru. V takové situaci musíte říkat každému hráči kdy má kam běžet, kdy má kopnout do míče a kde se zrovna pohybují ostatní. To by asi nebylo příliš efektivní.

Neexistuje předepsaná podoba kanban boardu. Vždy záleží na způsobu práce každého týmu, klíčové je, aby týmu pomáhal a ne ho zatěžoval administrativou. Kartičky s úkoly mohou obsahovat i poznámky pro jednotlivé stavy jako "až bude hotová analýza, poslat její kopii Martinovi". "až bude úkol v testu, poprosit QA tým o spolupráci", atd..

Vizualizace práce je rozhodně nejsilnější praktika Kanbanu, ten však přichází ještě s jedním doporučením a to limitovat množství rozdělané práce. Ne každý má totiž, jak se říká, tah na branku a speciálně programátoři raději programují a testování odkládají jak dlouho je to možné. Také rádi rozdělají několik úkolů najednou, protože májí společný technický základ. Snadno se vám pak stane, že po půl roce je spoustu práce rozdělané, ale žádná hotová. Případný tester, krom toho že by neměl celou dobu co dělat, by pak dostal k testování tak komplexní aplikaci, že jednak by bylo nemožné ji otestovat pořádně a druhak by to zabralo enormní množství času.

Kanban zavádí limity pro jednotlivé stavy workflow, aby tak minimalizoval problém úzkého hrdla a nedokončené práce. Řekněme, že máme 3 programátory. Abychom se vyhnuli situaci, že úkol nebude otestován a tedy nikdy hotový, nastavíme limit na max. tři rozdělané úkoly najednou. Programátor je tak tlačen nejdříve otestovat a dokončit tak první úkol, než začne pracovat na dalším. Nastavení limitů je opět individuální u každého týmu a mělo by řešit problém nedokončené práce a ne tým omezovat ve vývoji.

Kanban tedy můžeme shrnout do tří pravidel. Vizualizujte workflow, nastavte limity rozdělané práce a neustále sledujte jak to funguje a případně systém upravte. Pokud přemýšlíte o integraci agilních principů a třeba i nějaké agilní metodiky vývoje software, je Kanban určitě skvělý začátek. Kanban je velmi užitečný v kombinaci se SCRUMem nebo XP, protože ani v jednom případě se takto detailně workflow nesleduje.

Martin Jarčík je webový vývojář, projektový manažer, team leader a SCRUM Master, který pracoval pro značky jako Philips, Panasonic, Olympus, eBay, Seznam atd.

martin@yarcheeck.cz


Odborný garant
Petr Janiš
Project Manager
+420 777 049 865
více o garantovi
Autor: Petr Janiš
Ohodnoťte článek

Přidat komentář

Registrace

Registrujte se pomocí

nebo

Klasická registrace

*
*
*
*
*
Souhlasím se zpracováním osobních údajů dle Zásad pro následující účely:
×