Kanban-modell inom mjukvaruteknik

Vad är Kanban?

Kanban är ett mycket populärt ramverk för utveckling inom den agila mjukvaruutvecklingsmetoden. Det ger ett transparent sätt att visualisera ett teams uppgifter och arbetskapacitet. Den använder huvudsakligen fysiska och digitala tavlor för att låta gruppmedlemmarna visualisera det aktuella tillståndet för projektet de arbetar med.

Kanban har sitt ursprung i Toyota på 1940-talet. Kanbans betydelse på japanska är "skyltar". Kanban-tavlan har kolumner och berättelsekort. Kolumnerna är ingenting, men arbetsflödestillstånd och kort är inget annat än en demonstration av den faktiska uppgiften som en gruppmedlem utför.

När ska man använda Kanban?

Här är anledningarna till att använda Kanban-utvecklingsmetoden:

  • Kanban kan användas i vilken domän som helst, och den kan användas mycket effektivt i mjukvaruutveckling. Kanban-projektledning hjälper till att förbättra teamets effektivitet.
  • Det är ett pull-baserat system. Uppgifter dras så snart en individ är ledig.
  • Kanban bör användas när du vill släppa ditt arbete när som helst. Det kräver git-grening, men det är genomförbart.
  • Kanban bör användas när du vill ändra prioriteringarna i farten. För det behöver du bara lägga den här berättelsen överst i att göra-kön.
  • Den bör användas när du vill visualisera ditt arbete, och du vill se framstegen i dina uppgifter visuellt.

Kanban-kort

Kanban-systemet rekommenderar visualisering av arbete. Det föreslår användningen av den fysiska och den digitala tavlan.

Kanban-kort
Kanban-kort

Kanban-korten är viktiga delar på Kanban-tavlan eftersom de representerar det arbete som teamet arbetar med. Dessa kort kommer att ha

  1. Budget
  2. Ägare
  3. Typ
  4. Förfallodatum

En kolumn i Kanban-tavlan representerar arbetsstadiet, och du kan placera en WIP-gräns (Work in Progress) på kolumnen. WIP-gränsen betyder det maximala antalet kort som kan stanna på den kolumnen.

Eftersom Kanban-projektledning använder ett pull-baserat system, när och när en utvecklare är ledig, kan han/hon dra ett kort från att göra-kolumnen till dev-kolumnen.

Kanban styrelse

Kanban styrelse är ett agilt projektledningsverktyg som hjälper till att implementera Kanban för att hantera projekt för personliga och affärsmässiga ändamål. Det är en fysisk eller digital (JIRA) tavla utformad för att hjälpa team att visualisera sitt arbete i olika stadier och processer. Det hjälper också att representera stadierna i arbetet med kolumner med hjälp av kort.

Den har kolumner som representerar verkets status

  1. Att göra,
  2. dev
  3. Testning
  4. Klar.

Var och en av dessa kolumner kan ha kort <=WIP-gränsen. Korten representerar själva arbetet.

Du kan använda positiva tal för att begränsa pågående arbete, och detta gränsnummer kan placeras överst i kolumnerna i både fysiska och digitala Kanban-kort. Varje individ i teamet kan hantera statusen för sitt kort, och hela teamet kan visualisera arbetsflödet. Nästa i denna Kanban-handledning kommer vi att lära oss om Kanban Workflow.

Kanban arbetsflöde

Kanban arbetsflöde är en uppsättning steg som hjälper team att definiera explicita policyer och principer i Kanban. Den representerar reglerna och procedurerna medan arbetet pågår över olika stadier av utvecklings- och leveranscykler. Kanban-arbetsflödet består av steg-för-steg-processer mellan start och leverans av en viss uppgift.

Den grundläggande principen Kanban följer är, "sluta starta, börja avsluta". Med hjälp av WIP-gränser får den mer arbete gjort. Det finns anpassningsbara Kanban-arbetsflöden och tillstånd tillgängliga i alla moderna verktyg som JIRA.

Nedan är de grundläggande tillstånden som många mjukvaruteam följer för sin arbetsflödeshantering.

Stater Förståelse för arbetsuppgifter
Att göra Uppgifter kommer hit för första gången i detta tillstånd.
Klar för analys Analysera uppgiften och lägg till krav helt.
Redo för utveckling Analys slutförd och utveckling kan påbörjas.
I utvecklingen Uppgifterna utvecklas.
Klar för testning Utvecklingen slutförd och nu kan testningen påbörjas.
I testningen Uppgifterna testas.
Klar för release Testning avslutad; frigivning kan ske.
Släppt/klar Släppte.

De fyra principerna för Kanban

Nedan är de fyra viktigaste principerna för Kanban:

  1. Börja med det du har nu: Kanban-systemet föreslår att du arbetar stegvis och börjar med det du har för närvarande. Eftersom en av dess metoder är att förbättra kontinuerligt, måste du förbättra systemet gradvis.
  1. Gå med på att fullfölja inkrementella, evolutionära förändringar: Kanban rekommenderar en stegvis förändring i processen, och du får inte göra en stor förändring i processen på en gång.
  1. Respektera den nuvarande processen, roller och ansvar: Återigen, börja med det du har nu och ändra processen, rollen och ansvarsområden på ett stegvis sätt.
  1. Uppmuntra ledarskapshandlingar på alla nivåer: Varje individ kan fungera som ledare och ge idéer för att förbättra effektiviteten i det övergripande Kanban-systemet. Du ska inte tro att detta är en aktivitet på ledningsnivå, och även den yngsta medlemmen i teamet kan fungera som ledare.

De sex kärnpraxiserna i Kanban

Följande är de sex huvudsakliga principerna för Kanban:

  1. Visualisera arbetsflödet: Denna princip föreslår att du har ett Kanban-kort (fysiskt eller digitalt) för att visualisera arbetsflödet. Varje individ i ett lag måste se sitt kort och kort från andra lagmedlemmar. Du kan flytta dina kort i olika kolumner enligt bilden ovan. Det ger massor av transparens inom teamet och gör det också lättare att lösa blockerare
  1. Begränsa pågående arbete: Kanban är ett pull-baserat system, och det förbättrar effektiviteten för ett team för att begränsa pågående arbete och ha uppgifter som kan slutföras inom den givna tidsramen av teamet. Denna WIP-gräns gäller från början till slutet av arbetsflödet. Du kan tillämpa gränsen ovanpå kolumnen med ett positivt heltal.
  1. Fokusera på flow: Denna princip fokuserar på flöde och på eventuella avbrott. Om det finns avbrott eller blockerare måste de åtgärdas permanent.
  1. Explicita policyer: Policyer kan upprättas i ett team för att minska omarbetningen och fokusera på de områden som kräver uppmärksamhet eller där det är mer effektivt.
  1. Återkopplingsslinga: Återkopplingsslingor är mycket viktiga i Kanban. Det är inte bara inom laget utan mellan flera lag, tränare etc. Detta hjälper till att förbättra den övergripande hälsan hos Kanban-systemet.
  1. Kontinuerlig förbättring: Detta är kärnprincipen i Kanban-systemet. Det står att du alltid kan förbättra processen, och det kommer att resultera i bättre effektivitet.

Pullbaserat system

Kanban är en pull-baserad metod där uppgifter dras istället för att pushas. Så snart du har slutfört ditt nuvarande kort kan du dra ett nytt kort från den föregående kolumnen på Kanban-brädet.

Med WIP-gränsen hjälper Kanban till att förbättra ledtid och cykeltid. Det bör finnas minsta möjliga gap mellan dessa två tidpunkter. Till exempel har vi 5 utvecklare och bara 1 testare; vad kommer att hända i detta fall? Det skulle alltid finnas många kort som kräver testning, och de kommer att sitta sysslolösa och vänta.

För att övervinna problemen som nämnts ovan och förbättra effektiviteten följer Kanban det pull-baserade tillvägagångssättet med WIP-gränser, där det skulle finnas ett begränsat antal kort att dra.

Så en testare kommer att dra en uppgift från "redo för testning"-stadiet när han har avslutat sin nuvarande uppgift. Med WIP-gränsen i Kanban-kolumner (utvecklingsstadier) kommer du inte att ha många oövervakade kort i Kanban-arbetsflödet.

Det dragbaserade systemet hjälper också till att hitta rätt hastighet för laget. Med rätt hastighet på plats kommer laget att prestera bättre.

Ledtid och cykeltid

I Kanban-metoden används ledtid och cykeltid i stor utsträckning, det finns en skillnad mellan de två, och det är viktigt att förstå det för att undvika förvirring.

lead Time Cykeltid
Ledtid mäts som tiden mellan uppgiftens ankomst i ditt arbetsflöde och dess avgång från arbetsflödet, vilket betyder att den har släppts. Cykeltiden mäts som tiden mellan uppgiftens ankomst i tillståndet "pågår" och uppgiftens ankomst i "klar för release".

Här är det också viktigt att förstå att inte ta med tiden det tar mellan redo för release och faktisk release.

Cycle Time = Work in Progress/Throughput

I det ideala scenariot bör gapet mellan ledtid och cykeltid vara minimalt, och Kanban använder ett kumulativt flödesdiagram (CFD) för att mäta historiska data för led- och cykeltid.

Kumulativt flödesdiagram (CFD)

CFD är ett diagram som är tillgängligt i alla ledande verktyg för arbetsflödeshantering som JIRA. Det här diagrammet mäter den totala mängden arbetskort/uppgifter som kom in i arbetsflödet och samlade slutförda kort/uppgifter över tiden.

Det hjälper dig att få en uppskattning av genomsnittlig ledtid och cykeltid för förutbestämd tid.

CFD-diagram ger dig indikatorer eller problemområden att fixa. Det kommer att ge dig en tydlig bild, och baserat på detta diagram. Du kan korrigera ditt teams ledtid och cykeltid.

Kanban kumulativt flödesdiagram
Kanban kumulativt flödesdiagram
  1. lead Time: Det är varaktigheten mellan ett nytt korts ankomst i ditt arbetsflöde och dess slutliga avgång från arbetsflödet.
  2. Cykeltid: Det är en tidsperiod mellan kortets ankomst i fungerande tillstånd och när kortet är redo att släppas.
  3. WIP: Pågående arbete (WIP) begränsar det maximala antalet arbetsobjekt i de olika stadierna av arbetsflödet.
  4. genomströmning: Det är den faktiska prestandan, och den talar om det faktiska antalet kort som levereras under en given tidsram.
  5. Genomströmning = WIP/cykeltid

Begränsande WIP (pågående arbete)

I Kanbans utvecklingsmetodik begränsar WIP antalet uppgifter/kort som kan arbetas med av en gruppmedlem eller hela på en gång.

WIP-gränserna säkerställer att teamet stabiliserar sitt arbete och ökar den prediktiva karaktären, vilket är väsentligt i det pull-baserade systemet. Vanligtvis fattas WIP-gränsbeslutet av teamet självt.

Anledning till att ställa in WIP-gränserna

Här är skäl att ställa in WIP-gränserna:

  • Det flyttar fokus på att få saker gjorda när en individ fokuserar på en enda uppgift i taget.
  • Det hjälper team att förstå sin kapacitet.
  • Det förbättrar produktivitetens led- och cykeltid.
  • Det hjälper till att undvika pålagda uppgifter (i vänteläge).
  • Det hjälper till att förflytta arbetsflödet och uppgifterna fortsätter att röra sig.
  • Det hjälper också att lösa blockerare eftersom en individ inte växlar mellan olika uppgifter.

Scrum vs. Kanban

Här är de viktiga skillnaderna mellan Scrum vs. Kanban

Scrum Kanban
Scrum betonar planering. Det börjar med sprintplanering och slutar med sprint retrospektiv. Det hålls många möten som hjälper till att säkerställa att laget är i linje med nästa steg, prioriteringar och lärdomar från tidigare sprints. Kanban är öppen för att göra ändringar på språng. Det betyder att det är mindre stelhet och saker kan ändras ofta.
Det rekommenderar insamling av tidsmätningar gjord under sprint Kanban rekommenderar grafer för att få en överblick över lagets framsteg över tiden.
Scrum inte längre ber om ett åtagande från team. Istället handlar det om sprintmålen och prognoserna. Kanban förlitar sig på tidsboxning och prognoser.
Det stressar på planering och så uppskattning har en mycket viktig roll i Scrum Kanban har inga obligatoriska krav för uppskattning.
Varje individen har sin roll och ansvar. Nej sätta roller så flexibilitet när det gäller individuellt ansvar.
Iterationerna/Sprints är fasta i varaktighet. Denna varaktighet varierar från 2 veckor till 1 månad. Kanban är inte baserat på varaktighet. Denna sak mäts angående cykeltider.
Lag är krävs att begå en viss mängd arbete. Engagemang inte nödvändigt det är valfritt för lag.
I denna metod, tvärfunktionella team är viktiga eftersom de kan hantera eventuella störningar som kan orsaka en flaskhals i mjukvaruutvecklingen. Med specialiserat team är viktigt.
Det är inte möjligt att lägga till objekt till pågående iterationer. Nya objekt kan enkelt lägga till om den extra kapaciteten är tillgänglig.
En sprintbacklog ägs av endast av en enda lag. Flera teams kan dela Kanban styrelse.
Leveranser är bestäms av spurter, som en uppsättning arbeten måste slutföras och redo för granskning. Produkter och processer är levereras kontinuerligt på en nödvändig basis. Så testning och granskning pågår samtidigt.
Scrum mjukvaruutvecklingsmetod fokuserar på eftersläpningen. Kanban-metoden helt och hållet fokuserar på process dashboard.
Varje gruppmedlem har en specifik roll i Scrum master bestämmer tidslinjer, produktägare sätter upp mål och mål och teammedlemmar genomför utvecklingsarbetet. Det finns inga fördefinierade roller för ett team. Det kan dock fortfarande finnas en projektledare; teamet uppmuntras att samarbeta och arbetar tillsammans.
Bäst för projekt med ändrade prioriteringar. Perfekt för team med stabila prioriteringar som sannolikt inte kommer att förändras med tiden.
Mäter produktionen med hjälp av hastighet genom spurter. Mäter produktionen med hjälp av cykeltid eller den exakta tiden det tar att slutföra en hel del av ett projekt.
Scrum kräver en totalförskjutning från den traditionella modellen till Agile Scrum-modellen som skulle implementeras i projektet. Kanban tillåter inte drastiska förändringar i projektet.
Det är en idealisk metod för projekt med vitt skilda prioriteringar. Passar bäst för lag med stabila prioriteringar.
I Scrum är hela team fokuserar på att samarbeta och slutföra uppgiften att tillhandahålla kvalitetsutvecklingsarbete. Team arbetar för att nå mål och minska tiden för att slutföra hela processen. Således är minskning av tidscykeln den största indikatorn på framgång här.
Scrum betoning på sina scheman; nya objekt kan inte läggas till pågående iterationer. Kanban är mer iterativt till sin natur har inga specifika tidsramar. Så att nya artiklar kontinuerligt kan läggas till när ytterligare kapacitet finns tillgänglig.
Det totala arbetet utförs i partier/Sprints. Hela projektet utförs på förflyttning av enkelgängad arbetsartikel strömmar.
Scrum master fungerar som en problemlösare. Kanban uppmuntrar varje gruppmedlem är en ledare och dela ansvaret mellan dem alla.
Scrum föreskriver time-boxed iterationer. Kanban fokuserar på planerar en annan varaktighet för individuell iteration.
Scrum hjälper företag att spara tid och pengar. Kanban-metoden fokusera på ständiga förbättringar, produktivitet och effektivitet.
Uppnå stabil och konsekvent kommunikation prestanda på alla nivåer. Teammedlemmar är mer benägna att göra det uppnå sina mål mycket lättare på grund av den visuella karaktären hos Kanban-brädorna.
Projekt är kodade och testade under sprinten översyn Teammedlemmar är mer benägna att göra det uppnå sina mål mycket lättare på grund av den visuella karaktären hos Kanban-brädorna.
Det är lättare att anpassa sig till de ständiga förändringarna på grund av de korta spurterna och regelbunden feedback. Det är designad för en regelbunden, jämn utgång, stora förändringar i kundernas efterfrågan kan få Kanban att misslyckas.
Den totala kostnaden för projektet är minimal vilket kan leda till snabbare och billigare resultat. Om en uppgift inte är korrekt uppskattad, totala projektkostnaden kommer aldrig att vara korrekt. I sådana fall kan uppgiften fördelas på flera spurter.
Denna metodik kräver erfarna teammedlemmar endast. Så om teamet består av personer som inte är experter kan projektet inte slutföras i tid. Nej specifika tidsramar tilldelas med varje fas, så att teammedlemmarna aldrig får en uppfattning om hur mycket tid de kan ta i varje fas.
I den här Agile Scrum-metoden är det det lättare att leverera en kvalitetsprodukt vid en schemalagd tidpunkt. Den är designad för en regelbunden, jämn uteffekt, stora förändringar i kundernas efterfrågan kan få Kanban att falla.
Smakämnen projektplanen kommer aldrig att störa även om en gruppmedlem lämnar laget. Om någon av teammedlemmarna lämnar under utvecklingen kan den göra det skadar projektutvecklingen.
Dagliga möten ibland omintetgöra lagmedlemmar. Föråldrad Kanban-tavla kan leda till problem i utvecklingsprocessen.
Stora projekt kan enkelt delas upp in i lätthanterliga spurter.

Sammanfattning

  • Kanban definition: Kanban definieras som en smidig utvecklingsmetod för att utveckla mjukvara, bilar, varor, mediciner, skor eller något annat tillverkningsarbete.
  • Kanban använder Kanban-tavlan för att visualisera arbetet. Den använder kolumner som etapper (att göra, dev, testning, etc.) och kort som ett arbetsobjekt.
  • Kanban-metodik stöder den fysiska och digitala tavlan för visualisering.
  • Kanban är ett pull-baserat system, och kort dras från föregående steg till nuvarande stadier av teammedlemmar.
  • Kanban-metoden använder CFD-diagrammet för att förstå teamets ledtid och cykeltid. Det här diagrammet hjälper teamen att fixa gapet mellan dessa två tidpunkter och förbättra effektiviteten.
  • Kanban utvecklingsmetodik, WIP begränsar antalet uppgifter/kort som kan arbetas med av en gruppmedlem eller hela på en gång.
  • WIP begränsar ändrar fokus på att få saker gjorda när en individ fokuserar på en enskild uppgift åt gången.