Model Kanban v softwarovém inženýrství
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í.
Kdy použít Kanban?
Zde jsou důvody pro použití metody vývoje 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ů.
Kanban karty
Systém Kanban doporučuje vizualizaci práce. Navrhuje použití fyzické a digitální desky.
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.
Vzhledem k tomu, že projektový management Kanban používá systém založený na stahování, když je vývojář volný, může vytáhnout kartu ze sloupce úkolů do sloupce dev.
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í nedokončené výroby a toto limitní číslo lze umístit na horní část sloupců ve fyzických i digitálních tabulích Kanban. Každý jednotlivec v týmu může spravovat stav své karty a celý tým si může vizualizovat pracovní postup. Dále v tomto tutoriálu Kanban se dozvíme o Kanban Workflow.
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. |
Čtyři principy Kanbanu
Níže jsou uvedeny hlavní čtyři základní principy Kanban:
- 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í.
Šest základních praktik Kanban
Následuje šest hlavních praktik Kanbanu:
- Vizualizujte pracovní postup: Tento princip navrhuje mít Kanban board (fyzický nebo digitální) pro vizualizaci pracovního postupu. Každý jednotlivec týmu musí vidět svou kartu a karty ostatních členů týmu. Karty můžete přesouvat v různých sloupcích podle obrázku výše. Přináší spoustu transparentnosti do týmu a také usnadňuje řešení blokátorů
- 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ě.
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 tahu také pomáhá při hledání správné rychlosti pro tým. Se správnou rychlostí na místě bude tým podávat lepší výkon.
Doba trvání a doba cyklu
V metodě Kanban jsou široce používány dodací lhůty a doba cyklu, mezi nimi je rozdíl a je důležité to pochopit, aby se předešlo zmatkům.
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
V ideálním scénáři by mezera mezi dobou přípravy a dobou cyklu měla být minimální a Kanban používá k měření historických dat náskoku a doby cyklu kumulativní vývojový diagram (CFD).
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 opravit průběžnou dobu a dobu cyklu svého týmu.
- 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.
Propustnost = WIP/doba cyklu
Omezení WIP (rozpracovaný)
V metodice vývoje Kanban omezuje WIP počet úkolů/karet, na kterých může pracovat člen týmu nebo celý 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í).
- Pomáhá v pohybu pracovního postupu a úkoly se neustále pohybují.
- Pomáhá také vyřešit blokátory, protože jednotlivec nepřepíná mezi různými úkoly.
Scrum vs. Kanban
Zde jsou důležité rozdíly mezi Scrum vs. Kanban
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. |
Je to ideální metoda pro projekty s velmi rozdílné priority. | Nejvhodnější pro týmy se stabilními prioritami. |
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. |
Projekt jsou kódované a testované během sprintu recenze | Č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 pád 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ů. |
Shrnutí
- Definice kanbanu: Kanban je definován jako agilní vývojová metodika pro vývoj softwaru, automobilů, zboží, léků, obuvi nebo jakékoli jiné výrobní práce.
- Kanban používá Kanban board k vizualizaci práce. Používá sloupce jako fáze (úkoly, vývoj, testování atd.) a karty jako pracovní položku.
- Metodologie Kanban podporuje fyzickou a digitální desku pro vizualizaci.
- Kanban je systém založený na tahu a karty jsou taženy z předchozí fáze do aktuální fáze členy týmu.
- Metoda Kanban využívá CFD diagram k pochopení doby vedení týmu a doby cyklu. Tento graf pomáhá týmům napravit mezeru mezi těmito dvěma načasováními a zlepšit efektivitu.
- Metodologie vývoje Kanban, WIP omezuje počet úkolů/karet, na kterých může pracovat člen týmu nebo celý najednou.
- Limity WIP posouvají zaměření na to, jak věci dělat, protože se jednotlivec soustředí na jeden úkol najednou.