Kanban je ďalší nástroj v skupine agilných metód, kde sa nachádza aj Scrum. Je kompatibilný s agilným manifestom a nepopiera agilné princípy. Oproti Scrumu je však menej reštriktívny a je založený na veľmi jednoduchej myšlienke:
Nedokončená práca (Work-in-progress alebo WIP) by mala mať svoje obmedzenie a nová práca sa môže začať len vtedy, keď sa iná práca dokončí (alebo posunie do iného stavu).
Kanban (v japončine “signalizačná tabuľka”) predpokladá, že vznikne vizuálny signál o tom, že sa môže rozpracovať novú úloha, pretože aktuálne množstvo rozrobenej práce ešte nedosiahlo svoj limit.
(c) Henrik Kniberg & Mattias Skarin: Kanban and Scrum – Making the most of both (InfoQ 2010)
Znie to zaujímavo ? Na prvý pohľad možno nie, možno je to malá, nenápadná myšlienka, ale môže zmeniť všetko v doterajšom procese! Kanban totižto nie je proces ani metodika, je to spôsob ako zaviesť zmenové riadenie (change management) do existujúceho životného cyklu softvérového vývoja. Bol vytvorený ako časť Lean iniciatívy s cieľom transformovať firemnú kultúru na nepretržité zlepšovanie (Continuous Improvement).
Princíp Kanbanu – začať s tým, čo robíme teraz. Pochopíme proces zobrazením dôležitých tokov a nastavíme limity na každý stav tohto procesu. Potom začneme pracovať s tokom úloh v systéme tým, že ich vyberáme len vtedy, keď je vygenerovaný Kanban signál. Toto spôsobí, že sa v niektorých stavoch začnú úlohy blokovať a upchávať systém. To je to, čo sme chceli – tím v čo najkratšom čase odstráni problém a obnoví tak tok úloh. Pochopením príčin, upravovaním limitov WIP prípadne zmenou stavov procesov sa celý tok stáva priechodným.
Kanban takto vďaka transparencii zviditeľňuje úzke hrdlá, fronty, nestálosti a zbytočnosti – toto všetko má vplyv na výkonnosť z pohľadu množstva užitočnej práce a doby cyklu (začaté – odovzdané). Prehľadnosť sa dá ľahko zabezpečiť tým, že sa použije tabuľa/stena s lístočkami. Lístoček (Post-it) je ten vizuálny signál, ktorý som spomenul na začiatku.
Pravidlá sú iba dve:
- vizualizuj svoj pracovný tok
- limituj svoj WIP
Ešte spomeniem stručné podobnosti Kanbanu so Scrumom:
- sú Lean a Agile
- používajú plánovanie vyberaním úloh
- obmedzujú WIP
- používajú prehľadnosť na riadenie procesu zlepšovania
- sústreďujú sa na vytvorenie potencionálne dodateľného produktu rýcho a často
- stavajú na samoriadenie sa tímu
- požadujú rozdelenie práce na menšie časti
- release plán je priebežne upravovaný na základe empirických dát (velocity/lead time)
Odlišnosti Kanbanu od Scrumu:
- časovo obmedzené iterácie (Sprint) sú voliteľné, nie povinné
- záväzok tímu je voliteľný, nie povinný
- používa Lead Time ako metriku na plánovanie a vylepšenie procesu, nie Velocity
- všestranný tím je voliteľný, špecializované tímy/jednotlivci su povolené
- roly nie sú preddefinované
- veľkosť úloh môže byť ľubovolný
- burndown grafy nie sú povinné
- WIP obmedzuje priamo, Scrum nepriamo
- odhady sú voliteľné
- nové úlohy sa môžu pridávať do zoznamu hocikedy, ak to dovoľuje WIP limit
- Kanban tabuľa nie je špecifická pre jeden tím, môže ju zdieľať viacero tímov alebo jednotlivcov
- Kanban tabuľa pretrváva a neruší sa po každej iterácii
- prioritizácia nie je povinná ale voliteľná
Myslím, že stojí za to sa nad Kanbanom zamyslieť a zvážiť jeho výhody a prípadné dôsledky. Má menej obmedzení ako Scrum, takže jeho akceptácia v tíme môže byť jednoduchšia, navyše kto má skúsenosti so Scrumom a narazil na niektoré jeho obmedzenia, je možno toto ten správny impulz, že je čas sa posunúť zase o kúsok ďalej.