Co je Kanban?

Kanban je japonský termín, který znamená signboard nebo alfred. 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.

Image that shows people using Kanban boards.

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 showing a Kanban board.

Použití modelu vyžádané replikace

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. Kvalita utrpěla, pokud týmy musely používat zástupce k poskytování funkcí v rámci časového rámce.

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 účastníci nenasdílejí práci na týmech, které už pracují na 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 nedokončí, což vede k nepřijatelnému vysokému předstihu. Omezení počtupoložekch položek, na které může tým pracovat najednou, pomáhá zvýšit fokus 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.

Panely Kanbanu

Panel Kanban je jedním z týmů nástrojů, které 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 Úkoly, Úkoly 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ých, vývojových, testovacích, UAT a hotovo.

Karty Kanbanu založené na vývoji softwaru zobrazují karty, které odpovídají položkám backlogu produktů. 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.

Screenshot of a software development Kanban board.

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 časovou osu, zatímco svislá osa zobrazuje počet položek backlogu produktu. 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.

Image showing a cumulative flow diagram.

Bulge v jedné nebo více barevných oblastech obvykle značí kritický bod nebo překážku v toku 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.

Image showing a bottleneck in a cumulative flow diagram.

Kanban a Scrum v agilním vývoji

I když se široce hodí pod deštníkem agilního vývoje, 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 napříč Azure DevOps a může být také součástí integrace Azure Boards-GitHub.