Co je Kanban?

Kanban je japonský termín, který znamená signboard nebo billboard. Průmyslový inženýr s názvem Taiichi Ohno vyvinul Kanban ve společnosti Toyota Motor Corporation za účelem zlepšení výrobní efektivity.

I když byl Kanban vytvořen pro výrobu, vývoj softwaru sdílí mnoho stejných cílů, jako je zvýšení toku a propustnosti. Týmy pro vývoj softwaru můžou zlepšit efektivitu a rychleji poskytovat uživatelům hodnotu s využitím principů a metod kanbanu.

Obrázek znázorňující lidi používající panely Kanbanu

Principy Kanbanu

Přijetí Kanbanu vyžaduje dodržování některých základních postupů, které se můžou lišit od předchozích metod týmů.

Vizualizujte práci

Pochopení stavu vývojového týmu a průběhu práce může být náročné. Průběh práce a aktuální stav jsou při vizuálním zobrazení přehlednější než jako seznam pracovních položek nebo dokumentu.

Vizualizace práce je klíčovým principem, který Kanban řeší především prostřednictvím panelů Kanbanu. Tyto panely používají karty uspořádané podle průběhu ke komunikaci celkového stavu. Vizualizace práce jako karet v různých stavech na panelu pomáhá snadno vidět celkový přehled o tom, kde projekt aktuálně stojí, a také identifikovat potenciální kritické body, které by mohly ovlivnit produktivitu.

Diagram znázorňující panel Kanban

Použijte 'pull' model

V minulosti si zúčastněné strany vyžádaly funkčnost tím, že tlačí práci na vývojové týmy, často s přísnými termíny. Pokud musely týmy používat zkratky k dodání funkčnosti v rámci časového rámce, kvalita utrpěla.

Kanban se zaměřuje na zachování schválené úrovně kvality, kterou je třeba splnit před zvážením práce. Pro podporu tohoto modelu se účastníci nesnaží přidávat práci týmům, které už pracují na plné kapacitě. Místo toho zúčastněné strany přidávají žádosti do backlogu, které tým načítá do pracovního postupu, jakmile bude kapacita dostupná.

Nastavení limitu WIP

Týmy, které se snaží pracovat na příliš mnoha věcech najednou, můžou mít nižší produktivitu kvůli častému a nákladnému přepínání kontextu. Tým je zaneprázdněný, ale práce se neplní, což má za následek nepřijatelně dlouhé dodací lhůty. Omezení počtu položek, na které může tým současně pracovat, pomáhá zvýšit soustředění a zároveň omezit přepínání kontextu. Položky, na které tým aktuálně pracuje, se nazývají probíhající práce (WIP).

Týmy se rozhodnou o limitu WIP nebo maximálním počtu položek, na které můžou pracovat najednou. Dobře disciplínovaný tým zajistí, aby nepřekročil limit WIP. Pokud týmy překročí limity WIP, prošetří důvod a pracují na řešení původní příčiny.

Měření průběžného zlepšování

Aby vývojové týmy mohli průběžně zlepšovat, potřebují způsob měření efektivity a propustnosti. Panely Kanban poskytují dynamické zobrazení stavů práce v pracovním postupu, takže týmy mohou experimentovat s procesy a snadněji vyhodnotit dopad na pracovní postupy. Týmy, které využívají Kanban pro průběžné vylepšování, používají měření, jako je předstih a doba cyklu.

Desky Kanbanu

Kanban board je jedním z nástrojů, které týmy používají k implementaci postupů Kanbanu. Karta Kanban může být fyzická nebo softwarová aplikace, která zobrazuje karty uspořádané do sloupců. Typické názvy sloupců jsou K vyřízení, Pracuje se a Hotovo, ale týmy můžou názvy přizpůsobit tak, aby odpovídaly jejich stavům pracovního postupu. Tým může například preferovat použití Nové, Vývoj, Testování, UAT a Hotovo.

Kanbanové tabule pro vývoj softwaru zobrazují karty, které odpovídají položkám backlogu produktu. Karty zahrnují odkazy na jiné položky, jako jsou úkoly a testovací případy. Týmy můžou karty přizpůsobit tak, aby obsahovaly informace relevantní pro jejich proces.

Snímek obrazovky panelu Kanbanu pro vývoj softwaru

Na panelu Kanban platí limit WIP pro všechny probíhající sloupce. Omezení WIP se nevztahují na první a poslední sloupce, protože tyto sloupce představují práci, která nebyla spuštěna nebo dokončena. Panely Kanban pomáhají týmům zůstat v mezích WIP tím, že upozorní na sloupce, které překračují limity. Týmy pak můžou určit průběh akce pro odstranění kritického bodu.

Diagramy kumulativních toků

Běžným doplňkem k panelům Kanban založeným na vývoji softwaru je graf označovaný jako kumulativní vývojový diagram (CFD). CFD znázorňuje počet položek v jednotlivých stavech v průběhu času, obvykle za několik týdnů. Vodorovná osa zobrazuje časový průběh, zatím svislá osa ukazuje počet položek produktového backlogu. Barevné oblasti označují stavy nebo sloupce, ve kterých jsou karty aktuálně.

CFD je zvlášť užitečné pro identifikaci trendů v průběhu času, včetně kritických bodů a dalších přerušení rychlosti pokroku. Dobrý CFD ukazuje konzistentní vzestupný trend, zatímco tým pracuje na projektu. Barevné oblasti v grafu by měly být zhruba paralelní, pokud tým pracuje v rámci svých limitů WIP.

Obrázek znázorňující kumulativní vývojový diagram

Vypouklina v jedné nebo více barevných oblastech obvykle značí úzké místo nebo překážku v postupu týmu. V následujících CFD je dokončená práce zeleně plochá, zatímco stav testování v modré barvě roste, pravděpodobně kvůli kritickým bodům.

Obrázek znázorňující kritický bod v kumulativním vývojovém diagramu

Kanban a Scrum v agilním vývoji

Ačkoli spadají pod širokou kategorii vývoje metodou Agile, Scrum a Kanban jsou poměrně odlišné.

  • Scrum se zaměřuje na sprinty s pevnou délkou, zatímco Kanban je model průběžného toku.
  • Scrum má definované role, zatímco Kanban nedefinuje žádné týmové role.
  • Scrum používá rychlost jako klíčovou metriku, zatímco Kanban používá čas cyklu.

Týmy často přijímají aspekty Scrumu i Kanbanu, aby jim pomohly co nejvýrazněji pracovat. Bez ohledu na to, které vlastnosti si zvolí, týmy můžou vždy kontrolovat a přizpůsobovat, dokud nenajde to nejlepší. Týmy by měly začít jednoduše a neztratí přehled o důležitosti pravidelného poskytování hodnoty uživatelům.

Kanban s GitHubem

GitHub nabízí prostředí Kanbanu prostřednictvím panelů projektů (classic). Tyto panely vám pomůžou organizovat a určovat prioritu práce pro konkrétní vývoj funkcí, komplexní plány nebo kontrolní seznamy vydaných verzí. Panely projektů (klasické) můžete automatizovat tak, aby synchronizovaly stav karet s přidruženými problémy a žádostmi o přijetí změn.

Kanban s Azure Boards

Azure Boards poskytuje komplexní řešení Kanbanu pro plánování DevOps. Azure Boards má hlubokou integraci v Azure DevOps a může být také součástí integrace Azure Boards-GitHub.