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. Stรคndiga fรถrbรคttringar: 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.
Var 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. Nytt 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.
Var 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.
Ocuco-landskapet 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.

Sammanfatta detta inlรคgg med: