Co je Kanban model v softwarovém inženýrství?
⚡ Chytré shrnutí
Kanban model v softwarovém inženýrství vizualizuje každý úkol na tabuli, omezuje rozpracovanou práci a načítá nové položky pouze tehdy, když se uvolní kapacita, takže týmy zajišťují stabilní a předvídatelný tok dokončené práce.

Co je Kanban?
Kanban je velmi oblíbený framework pro vývoj v metodologii agilního vývoje softwaru. Poskytuje transparentní způsob vizualizace úkolů a pracovní kapacity týmu. Využívá především fyzické a digitální nástěnky, které členům týmu umožňují vizualizovat aktuální stav projektu, na kterém pracují.
Kanban vznikl v Toyotě ve 1940. letech minulého století. Kanban znamená v japonštině „billboardy“. Kanban deska má sloupce a příběhové karty. Sloupce nejsou nic, ale stavy pracovního postupu a karty nejsou nic jiného než ukázka skutečného úkolu, který člen týmu provádí.
Tyto karty nesly signál „just-in-time“: stanice si vyžádala díly pouze tehdy, když je skutečně potřebovala, takže nic nebylo vyrobeno předem. Kanban tuto myšlenku zachovává. Je to metoda, která se přenáší na stávající proces, spíše než jeho náhrada, takže se hodí do jakéhokoli životní cyklus vývoje softwaru model, který již provozujete.
Kdy použít Kanban?
Kanban je vhodný pro týmy, jejichž práce přichází nepředvídatelně a které potřebují vydat položku, jakmile je připravena. Zde jsou hlavní důvody pro použití metody Kanban:
- Kanban lze použít v jakékoli doméně a lze jej velmi efektivně využít při vývoji softwaru. Řízení projektů Kanban pomáhá zlepšovat efektivitu týmu.
- Je to systém založený na tahu. Úkoly se stahují, jakmile je jednotlivec volný.
- Kanban byste měli použít, když chcete své dílo kdykoli vydat. Vyžaduje to větvení git, ale je to proveditelné.
- Kanban by se měl používat, když chcete změnit priority za běhu. K tomu vše, co musíte udělat, je umístit tento příběh na začátek fronty úkolů.
- Mělo by se používat, když si chcete svou práci vizualizovat a chcete vizuálně vidět průběh svých úkolů.
Vhodnost je jedna polovina rozhodnutí; níže uvedená odměna je druhá.
Výhody metodologie Kanban
Nejsilnějším argumentem pro Kanban je, že zlepšuje dodání, aniž by vynucoval reorganizaci. Nikdo nemění název a není vnucován žádný sprintový kalendář, přesto představenstvo hned první den zviditelní fronty, blokující pracovníky a přetížené lidi. Úzké hrdlo, které vidí každý, se obvykle opraví.
Týmy, které používají Kanban, konzistentně uvádějí následující výhody:
- Kratší dodací lhůty: Limity nedokončenosti zkracují dobu, kterou karta stráví čekáním, což je místo, kde se skrývá většina zpoždění.
- Vyšší flexibilita: Naléhavá položka se může kdykoli dostat na začátek sloupce úkolů, aniž by bylo nutné na ni čekat.
- Lepší spolupráce: Když sloupec dosáhne svého limitu, volní členové ho pomohou vyčistit, místo aby začínali něco nového.
- Postavení zaměstnanců: Jednotlivci si vyberou svou další kartu a vlastní její stav, což eliminuje překážky ve schvalování.
- Předvídatelné předpovědi: Historická doba cyklu poskytuje odhad dodání založený na důkazech, nikoli pouhý odhad.
- Less odpad: Nic se nezačne, dokud systém nemá kapacitu to dokončit.
Tyto výsledky vyplývají ze čtyř principů, kterými se řídí každá implementace Kanbanu.
Čtyři principy Kanbanu
Níže jsou uvedeny čtyři hlavní principy Kanbanu:
- Začněte s tím, co máte nyní: Systém Kanban navrhuje pracovat postupně a začít s tím, co aktuálně máte. Vzhledem k tomu, že jedním z jeho postupů je neustálé zlepšování, musíte systém vylepšovat postupně.
- Souhlasím s prováděním přírůstkové, evoluční změny: Kanban doporučuje postupnou změnu v procesu a nesmíte provést velkou změnu v procesu najednou.
- Respektujte současný proces, role a odpovědnosti: Znovu začněte s tím, co máte nyní, a postupně změňte proces, roli a odpovědnosti.
- Podporujte činy vedení na všech úrovních: Každý jednotlivec může jednat jako vůdce a poskytovat nápady na zlepšení efektivity celkového systému Kanban. Neměli byste si myslet, že se jedná o aktivitu na úrovni managementu a dokonce i nejmladší člen týmu může působit jako vedoucí.
Principy popisují způsob myšlení. Níže uvedených šest postupů popisuje každodenní chování, které je uvádí do praxe.
Šest základních praktik Kanban
Následuje šest hlavních praktik Kanbanu:
- Vizualizujte pracovní postupTento princip naznačuje použití Kanbanové tabule (fyzické nebo digitální) pro vizualizaci pracovního postupu. Každý člen týmu musí vidět svou kartu a karty ostatních členů týmu. Karty můžete přesouvat do různých sloupců podle rozvržení tabule. To přináší v týmu velkou transparentnost a také usnadňuje řešení blokujících faktorů.
- Omezte nedokončenou práci: Kanban je systém založený na tahu a zlepšuje efektivitu týmu, aby omezil nedokončenou práci a měl úkoly, které může tým dokončit v daném časovém rámci. Tento limit WIP platí od začátku do konce pracovního postupu. Limit můžete použít na vrchol sloupce pomocí kladného celého čísla.
- Zaměřte se na tok: Tento princip se zaměřuje na tok a na jakákoli přerušení. Pokud dojde k přerušení nebo blokování, musí být trvale opraveny.
- Explicitní zásady: Politiky mohou být stanoveny v týmu, aby se omezilo přepracování a zaměřily se na oblasti, které vyžadují pozornost nebo kde je to efektivnější.
- Zpětná vazba: Smyčky zpětné vazby jsou v Kanbanu velmi důležité. Není to jen v rámci týmu, ale mezi více týmy, trenéry atd. To pomáhá zlepšit celkové zdraví systému Kanban.
- Neustálé Zlepšování: Toto je základní princip systému Kanban. Uvádí, že proces můžete vždy zlepšit, což povede k lepší efektivitě.
Praxe potřebuje majitele, což Kanban řeší jinak než ostatní agilní metodiky.
Role a odpovědnosti v Kanbanu
Kanban nepředepisuje žádné nové pracovní pozice, a to je záměrné – třetí princip vás vyzývá k respektování rolí, které již máte. Vývojář zůstává vývojářem. V praxi se však s dozráváním představenstva objevují dvě odpovědnosti a zralé implementace je explicitně pojmenovávají.
Jedno Manažer poskytování služeb Zodpovídá za tok práce na hrací ploše. Tato osoba sleduje karty, které se přestaly pohybovat, eskaluje blokující karty, udržuje sloupce v rámci jejich limitů rozpracovanosti a provádí kontrolu, kde tým kontroluje svá vlastní data o době cyklu. Správce servisních požadavků vlastní to, co se objeví na nástěnce, zastupuje zákazníky, kteří vznášejí požadavky, řadí sloupec úkolů tak, aby nejcennější položka byla nahoře, a explicitně stanovuje zásady výběru.
Obojí je spíše zodpovědnost než nadbytečný počet zaměstnanců; jeden člověk často nese obojí. Důležité je, aby někdo byl zodpovědný za tok a někdo za příjem. Artefakty, které spravují, jsou pak na řadě.
Kanban karty
Metoda Kanban doporučuje vizualizaci práce. Navrhuje použití fyzické i digitální tabule a tabule níže zobrazuje tyto sloupce s kartami rozmístěnými v nich.
Kanban karty jsou základními součástmi na desce Kanban, protože představují práci, na které tým pracuje. Tyto karty budou mít
- Priorita
- Majitel
- Typ
- Datum splatnosti
Sloupec na desce Kanban představuje pracovní fázi a na sloupec můžete umístit limit WIP (Work in Progress). Limit WIP znamená maximální počet karet, které mohou zůstat na tomto sloupci.
Protože metoda Kanban využívá systém založený na pull-u, může si vývojář, když má čas, vytáhnout kartu ze sloupce úkolů do sloupce vývojářů. Nástěnka, na které se tyto karty nacházejí, si zaslouží bližší pohled.
Kanban Board
Kanban Board je agilní nástroj pro řízení projektů, který pomáhá implementovat Kanban pro řízení projektů pro osobní a obchodní účely. Je to fyzická nebo digitální (JIRA) deska navržená tak, aby pomohla týmům vizualizovat jejich práci v různých fázích a procesech. Pomáhá také reprezentovat fáze práce se sloupci pomocí karet.
Má sloupce, které představují stav práce jako
- Dělat,
- dev
- Testování
- Hotovo.
Každý z těchto sloupců může mít karty <=limit WIP. Karty představují skutečnou práci.
Kladná čísla můžete použít k omezení rozpracovanosti a toto limitní číslo lze umístit na začátek sloupců ve fyzických i digitálních Kanban tabulích. Kterýkoli člen týmu může spravovat stav své karty a celý tým si může vizualizovat pracovní postup. Digivysoké desky, jako například PROHLÍDKA přidat stejné limity s automatickým časem cyklu trackrál. Dále se seznámíme s pracovním postupem Kanban, který tyto sloupce představují.
Kanban Workflow
Kanban Workflow je sada kroků, které pomáhají týmům definovat explicitní zásady a principy v Kanbanu. Představuje pravidla a postupy, zatímco práce probíhá v různých fázích vývoje a cyklů dodávek. Kanban workflow se skládá z procesů krok za krokem mezi spuštěním a dodáním konkrétního úkolu.
Základní princip Kanbanu je následující: „přestaňte začínat, začněte končit“. S pomocí limitů WIP udělá více práce. V každém moderním nástroji, jako je JIRA, jsou k dispozici přizpůsobitelné pracovní postupy a stavy Kanban.
Níže jsou uvedeny základní stavy, kterými se mnoho softwarových týmů řídí při správě pracovních postupů.
| States | Pochopení úkolů |
|---|---|
| Dělat | Úkoly sem dorazí poprvé v tomto stavu. |
| Připraveno k analýze | Úkol analyzujte a zcela přidejte požadavky. |
| Připraveno k vývoji | Analýza dokončena a vývoj může začít. |
| Ve vývoji | Úkoly se vyvíjejí. |
| Připraveno k testování | Vývoj dokončen a nyní může začít testování. |
| V testování | Úkoly se testují. |
| Připraveno k vydání | Testování dokončeno; může dojít k uvolnění. |
| Uvolněno/Hotovo | Vydáno. |
Všimněte si, že stavy „připraveno k“ jsou fronty, nikoli práce. Karta v jedné může zůstat neomezeně dlouho, takže pravidlo, které karty přesouvá, je důležitější než stavy.
Pull Based System
Kanban je metoda založená na tahu, kde jsou úkoly taženy, nikoli tlačeny. Jakmile dokončíte svou aktuální kartu, můžete si vytáhnout novou kartu z předchozího sloupce desky Kanban.
S limitem WIP pomáhá Kanban zlepšit Lead Time a Cycle Time. Mezi těmito dvěma načasováními by měla být co nejmenší mezera. Například máme 5 vývojářů a pouze 1 testera; co se stane v tomto případě? Vždy bude mnoho karet, které vyžadují testování, a ty budou nečinně čekat a čekat.
K překonání výše zmíněných problémů a zlepšení efektivity Kanban používá přístup založený na tahu s limity WIP, kde by byl omezený počet karet, které je třeba stáhnout.
Tester tedy vytáhne úkol z fáze „připraveno k testování“, když dokončí svůj aktuální úkol. S limitem WIP ve sloupcích Kanban (fáze vývoje) nebudete mít v pracovním postupu Kanban mnoho bezobslužných karet.
Systém založený na pull metodě také pomáhá najít správnou rychlost pro tým. Se správnou rychlostí bude tým podávat lepší výkon. Všechno zde závisí na jednom čísle: limitu rozpracovanosti.
Omezení WIP (rozpracovaný)
V metodě Kanban omezuje WIP počet úkolů/karet, na kterých může člen týmu nebo celý tým pracovat najednou.
Limity WIP zajišťují, že tým stabilizuje svou práci a zvyšuje prediktivní povahu, což je v systému založeném na tahu zásadní. O limitu WIP obvykle rozhoduje samotný tým.
Důvod pro nastavení limitů WIP
Zde jsou důvody, proč nastavit limity WIP:
- Přesouvá zaměření na to, jak věci dělat, protože se jednotlivec soustředí na jeden úkol najednou.
- Pomáhá týmům pochopit jejich kapacitu.
- Zlepšuje produktivitu vedení a dobu cyklu.
- Pomáhá vyhnout se hromadění úkolů (v režimu čekání).
- Zlepšuje to plynulost pracovního postupu, takže úkoly se neustále posouvají.
- Pomáhá to také řešit blokující faktory, protože jedinec se nemusí přepínat mezi různými úkoly.
Warning️ Varování: Příliš vysoko nastavený limit je totéž jako žádný limit – fronta karet a doba cyklu se prodlužují. Příliš nízko nastavený limit nechává lidi nečinnými. Změňte limit pro jeden sloupec najednou a sledujte dobu cyklu dva týdny.
To je poslední část teorie; následující část ji promění v činy.
Jak krok za krokem implementovat Kanban
Začít s Kanbanem je snadné: první krok popisuje, co již děláte. Projděte si tuto sekvenci za přítomnosti celého týmu.
- Zmapujte aktuální pracovní postup. Projděte si jednu hotovou položku pozpátku každým předáním, kterým prošla. Každé předání se stane sloupcem, včetně čekacích stavů, které oficiálně nikdo nevlastní.
- Nakreslete desku. Jeden sloupec na stát, zleva doprava, končící slovem Hotovo. Na první měsíc postačí bílá tabule s lepicími papírky.
- Napište karty. Každé položce během přepravy přidělte kartu s uvedením priority, vlastníka, typu a data splatnosti a poté ji umístěte do sloupce odpovídajícího jejímu skutečnému stavu.
- Pro každý sloupec definujte „hotovo“. Napište na tabuli kritéria ukončení. Tento postup s explicitními pravidly zabraňuje tomu, aby se karty odrážely zpět.
- Nastavte počáteční limity nedokončené výroby. Pro každý sloupec kromě Úkolů a Hotovo vyberte počáteční číslo pomocí níže uvedené metody a poté ho napište nad záhlaví.
- Souhlaste s pravidlem pull. Nikdo nezačíná novou kartu, pokud je jeho sloupec na svém limitu; místo toho pomáhá vyčistit sloupec po své pravici.
- Denně choďte po prkně. Pohybujte se zprava doleva, nejstarší kartou jako první, a ptejte se, co tuto kartu blokuje a kdo ji dnes může odblokovat.
- Změřte a poté utáhněte. Po dvou týdnech data o době cyklu ukazují, který sloupec obsahuje karty nejdéle. Snižte tento limit nebo přidejte kapacitu a poté postup opakujte.
Pátý krok je bod, ve kterém většina týmů zastavuje, takže zde jsou tři metody dimenzování, které odborníci používají:
| Metoda dimenzování rozpracovaných produktů | Jak to funguje |
|---|---|
| Velikost týmu plus jedna | Limit se rovná počtu lidí pracujících v daném sloupci plus jeden slot pro blokovanou položku. Nejlepší pro novou nástěnku bez dat. |
| Dvě až tři položky na osobu | Vynásobte počet lidí ve sloupci dvěma nebo třemi; tři vývojáři, každý se dvěma položkami, dají šest. |
| Propustnost x doba cyklu | Aplikujte na svou vlastní historii vzorec WIP = propustnost x doba cyklu a poté nastavte limit mírně pod výsledkem. |
První číslo považujte za hypotézu. Párování hrací desky s formálními agilní testování zabraňuje tomu, aby se testovací sloupec stal úzkým hrdlem, a dvě níže uvedená časování ukazují, zda to funguje.
Doba trvání a doba cyklu
V metodě Kanban se široce používají dodací lhůty a doby cyklu, mezi nimiž je rozdíl a je důležité si to uvědomit, aby se předešlo nejasnostem.
| Dodací lhůta | Čas cyklu |
|---|---|
| Doba realizace se měří jako doba mezi příchodem úkolu do vašeho pracovního postupu a jeho odchodem z pracovního postupu, což znamená, že byl uvolněn. | Doba cyklu se měří jako doba mezi příchodem úlohy do stavu „probíhá“ a příchodem úlohy do stavu „připraveno k uvolnění“. |
Zde je také důležité porozumět tomu, že nezahrnuje čas, který uplyne mezi připraveností k vydání a skutečným vydáním.
Cycle Time = Work in Progress/Throughput
💡 Tip: Dodací lhůta je to, co zažívá zákazník; doba cyklu je to, co řídí tým. Velká mezera znamená, že práce čeká ve frontě, než ji někdo začne, takže před zrychlením týmu opravte příjem.
V ideálním případě by měl být rozdíl mezi dodací lhůtou a dobou cyklu minimální a Kanban používá kumulativní vývojový diagram (CFD) k měření historických dat dodací lhůty a doby cyklu. Tento diagram je předmětem další části.
Kumulativní vývojový diagram (CFD)
CFD je graf, který je dostupný ve všech předních nástroje pro řízení pracovního toku jako JIRA. Tento graf měří celkové množství pracovních karet/úkolů, které vstoupily do pracovního postupu a shromážděné dokončené karty/úkoly v průběhu času.
Pomůže vám odhadnout průměrnou dobu přípravy a dobu cyklu pro předem určenou dobu.
CFD diagram vám poskytne indikátory nebo problémové oblasti, které je třeba opravit. Poskytne vám jasný obrázek a na základě tohoto diagramu můžete upravit dodací lhůtu a dobu cyklu vašeho týmu. Níže uvedený kumulativní vývojový diagram znázorňuje každý stav jako barevný pás; pásmo, které se neustále rozšiřuje, představuje úzké hrdlo.
Graf se odečítá pomocí čtyř veličin:
- Dodací lhůta: Je to doba mezi příchodem nové karty do vašeho pracovního postupu a jejím konečným odchodem z pracovního postupu.
- Čas cyklu: Je to doba mezi uvedením karty do funkčního stavu a okamžikem, kdy je karta připravena k uvolnění.
- WIP: Nedokončená výroba (WIP) omezuje maximální množství pracovních položek v různých fázích pracovního postupu.
- Propustnost: Je to skutečný výkon a říká skutečný počet karet dodaných v daném časovém rámci.
Throughput = WIP/Cycle Time
To zahrnuje artefakty, mechaniku a metriky. Zbývající otázkou je, jak si Kanban stojí v porovnání se Scrumem.
Scrum vs. Kanban
Zde jsou důležité rozdíly mezi Scrum vs. KanbanŠirší obrázek viz. Agilní vs. Scrum.
| Skrumáž | Kanban |
|---|---|
| Skrumáž klade důraz na plánování. Začíná to plánováním sprintu a končí retrospektivou sprintu. Pořádá se mnoho schůzek, které pomáhají zajistit, že tým je v souladu s dalšími kroky, prioritami a poznatky z předchozích sprintů. | Kanban je otevřený provádění změn na cestách. Znamená to menší tuhost a věci se mohou často měnit. |
| Doporučuje sběr měření času vyrobené během sprintů | Kanban doporučuje grafy získat přehled o postupu týmu v čase. |
| Skrumáž už ne žádá od týmů závazek. Místo toho jde o cíle a prognózy sprintu. | Kanban spoléhá na časový box a předpovědi. |
| Klade důraz na plánování a tak velmi důležitou roli hraje odhad ve Scrumu | Kanban má žádné povinné požadavky pro odhad. |
| Každý jednotlivec má svou roli a odpovědnosti. | Ne nastavit role tak flexibilně z hlediska individuální odpovědnosti. |
| Iterace/Sprints jsou pevně dané v trvání. Tato doba se pohybuje od 2 týdnů do 1 měsíce. | Kanban je není založeno na délce trvání. Tato věc se měří s ohledem na časy cyklu. |
| Týmy jsou povinen se zavázat konkrétní množství práce. | Závazek není nutný je pro týmy volitelné. |
| V této metodě mezifunkční týmy jsou důležité, protože se dokážou vypořádat s jakýmkoli narušením, které může způsobit překážku ve vývoji softwaru. | S specializovaný tým je důležité. |
| To je není možné přidat položky k probíhajícím iteracím. | Nový položky lze snadno přidat pokud je k dispozici dodatečná kapacita. |
| Nevyřízený sprint vlastní pouze a jediný tým. | Více týmůs mohou sdílet Kanban board. |
| Dodávky jsou určeno sprinty, která musí být dokončena a připravena ke kontrole. | Produkty a procesy jsou dodávané průběžně na potřebném základě. Proces testování a kontroly tedy probíhá současně. |
| Metoda vývoje softwaru Scrum se zaměřuje na nevyřízené položky. | úplně metoda Kanban se zaměřuje na řídicí panel procesů. |
| Každý člen týmu má specifickou roli ve Scrum master rozhodujte o časových osách, majitel produktu stanoví cíle a záměry a členové týmu vedou vývojovou práci. | Pro tým nejsou žádné předem definované role. Stále však může existovat projektový manažer; tým je povzbuzován ke spolupráci a spolupráci. |
| Nejlepší pro projekty s měnící se priority. | Ideální pro týmy s stabilní priority že se pravděpodobně časem nezmění. |
| Měří výrobu pomocí rychlosti přes sprinty. | Měří výrobu pomocí doba cyklu nebo přesný čas potřebný k dokončení jednoho celého kusu projektu. |
| Scrum vyžaduje a úplný posun od tradičního modelu na model Agile Scrum, který by projekt implementoval. | Kanban neumožňuje drastické změny v projektu. |
| Ve Scrumu je celý team se zaměřuje na spolupráci a dokončení úkolu poskytovat kvalitní vývojovou práci. | Týmy pracují na dosažení cílů a zkrátit čas na dokončení celého procesu. Zkrácení časového cyklu je zde tedy největším ukazatelem úspěchu. |
| Skrumáž důraz na její rozvrhy; nové položky nelze přidávat do probíhajících iterací. | Kanban je přirozeně iterativnější nemá konkrétní časové rámce. Aby bylo možné neustále přidávat nové položky, kdykoli je k dispozici další kapacita. |
| Celková práce se provádí v šarže/Sprints. | Celý projekt se provádí na pohybu jednovláknová pracovní položka protéká. |
| Scrum master působí jako řešitel problémů. | Kanban povzbuzuje každý člen týmu je vůdce a sdílení odpovědnosti mezi nimi všemi. |
| Scrum předepisuje časově ohraničené iterace. | Kanban se zaměřuje na plánování jiné doby trvání pro individuální iteraci. |
| Scrum pomáhá firmám šetří čas a peníze. | Metoda Kanban zaměřit se na neustálé zlepšování, produktivita a efektivita. |
| Dosáhnout stabilní a konzistentní komunikace výkonu na všech úrovních. | Členové týmu mají větší pravděpodobnost dosáhnout svých cílů mnohem snadněji kvůli vizuální povaze kanbanových desek. |
| To je snadněji se přizpůsobí neustálým změnám kvůli krátkým sprintům a pravidelné zpětné vazbě. | To je navrženo pro pravidelný, stabilní výkon, velké změny v poptávce zákazníků mohou způsobit, že Kanban selže. |
| Celkové náklady na projekt jsou minimální, což může vést k rychlejší a levnější výsledek. | Pokud úkol není správně odhadnut, celkové náklady na projekt nebudou nikdy přesné. V takových případech lze úkol rozložit do několika sprintů. |
| Tato metodika vyžaduje zkušené členy týmu pouze. Pokud se tedy tým skládá z lidí, kteří nejsou odborníky, nelze projekt dokončit včas. | Ne konkrétní časové rámce jsou přiděleny pro každou fázi, takže členové týmu nikdy nedostanou představu, kolik času mohou v každé fázi zabrat. |
| V této Agile Scrum metodě ano snadnější dodání kvalitního produktu v plánovaném čase. | Je určen pro a pravidelný, stálý výkon, Velké změny v poptávce zákazníků mohou způsobit selhání Kanbanu. |
| Jedno plán projektu nikdy nenaruší i když člen týmu tým opustí. | Pokud některý z členů týmu během vývoje odejde, může poškodit vývoj projektu. |
| Občas každodenní schůzky zmařit členové týmu. | Zastaralá deska Kanban může vést k problémům v procesu vývoje. |
| Velké projekty lze snadno rozdělit do snadno ovladatelných sprintů. | Velké projekty jsou řešeny jako nepřetržitý tok jednotlivých položek, spíše než aby byly rozděleny do dávek. |


