Vad är Kanban-modellen inom programvaruutveckling?
⚡ Smart sammanfattning
Kanban-modellen inom programvaruutveckling visualiserar varje uppgift på en tavla, begränsar pågående arbete och hämtar nya objekt endast när kapacitet frigörs, så att team levererar ett stadigt och förutsägbart flöde av färdigt arbete.

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.
De korten hade en just-in-time-signal: en station begärde endast delar när den faktiskt behövde dem, så ingenting byggdes i förväg. Kanban behåller den idén. Det är en metod som läggs ovanpå din befintliga process snarare än en ersättning för den, så den passar alla mjukvaruutvecklingens livscykel modell du redan kör.
När ska man använda Kanban?
Kanban passar team vars arbete anländer oförutsägbart och som behöver släppa så snart ett objekt är klart. Här är de främsta anledningarna till att använda Kanban-metoden:
- 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.
Passformen är ena halvan av beslutet; resultatet nedan är den andra.
Fördelar med Kanban-metoden
Det starkaste argumentet för Kanban är att det förbättrar leveransen utan att tvinga fram en omorganisation. Ingen ändrar titel och ingen sprintkalender införs, men ändå synliggör tavlan köer, blockeringar och överbelastade personer redan från dag ett. En flaskhals som alla kan se tenderar att åtgärdas.
Team som använder Kanban rapporterar konsekvent följande fördelar:
- Kortare leveranstider: Pågående arbete-gränser minskar den tid ett kort tillbringar i väntan, vilket är där de flesta fördröjningar döljer sig.
- Högre flexibilitet: Ett brådskande ärende kan när som helst hamna högst upp i att-göra-kolumnen, utan att man behöver vänta på en iteration.
- Bättre samarbete: När en kolumn når sin gräns hjälper gratismedlemmar till att rensa den istället för att starta något nytt.
- Empowerment för anställda: Individer väljer sitt nästa kort och äger dess tillstånd, vilket eliminerar flaskhalsar vid godkännande.
- Förutsägbar prognos: Historisk cykeltid ger en evidensbaserad leveransuppskattning istället för en gissning.
- Less avfall: Ingenting påbörjas innan systemet har kapacitet att slutföra det.
Dessa resultat följer av fyra principer som styr varje Kanban-implementering.
De fyra principerna för Kanban
Nedan följer de fyra viktigaste kärnprinciperna för Kanban:
- 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.
- 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.
- 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.
- 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.
Principer beskriver tankesättet. De sex metoderna nedan beskriver det dagliga beteende som omsätter dem i praktiken.
De sex kärnpraxiserna i Kanban
Följande är de sex viktigaste kärnmetoderna för Kanban:
- Visualisera arbetsflödetDenna princip föreslår att man har en Kanban-tavla (fysisk eller digital) för att visualisera arbetsflödet. Varje individ i ett team måste se sitt eget kort och andra teammedlemmars kort. Du kan flytta dina kort i olika kolumner beroende på tavlans layout. Det ger stor transparens inom teamet och gör det också enklare att lösa blockeringar.
- 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.
- 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.
- 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.
- Å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.
- 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.
Metoder behöver ägare, vilket Kanban hanterar annorlunda än andra agila metoder.
Kanban-roller och ansvarsområden
Kanban föreskriver inga nya jobbtitlar, och det är avsiktligt – den tredje principen ber dig att respektera de roller du redan har. En utvecklare förblir en utvecklare. I praktiken framträder dock två ansvarsområden när en styrelse mognar, och mogna implementeringar namnger dem explicit.
Ocuco-landskapet Service Delivery Chef äger arbetsflödet genom spelplanen. Denna person övervakar kort som har slutat röra sig, eskalerar blockerare, håller kolumner inom sina WIP-gränser och kör granskningen där teamet inspekterar sina egna cykeltidsdata. Hanterare av serviceförfrågningar äger det som kommer in på tavlan, representerar de kunder som lämnar in förfrågningar, ordnar att-göra-kolumnen så att det mest värdefulla objektet hamnar överst och gör urvalspolicyn tydlig.
Båda är ansvarsområden snarare än extra personalstyrka; en person bär ofta båda. Det som är viktigt är att någon ansvarar för flödet och någon för intaget. De artefakter de hanterar kommer sedan.
Kanban-kort
Kanban-metoden rekommenderar visualisering av arbete. Den föreslår användning av både fysiska och digitala tavlor, och tavlan nedan visar dessa kolumner med kort fördelade över dem.
Kanban-korten är viktiga delar på Kanban-tavlan eftersom de representerar det arbete som teamet arbetar med. Dessa kort kommer att ha
- Budget
- Ägare
- Typ
- 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-metoden använder ett pull-baserat system kan en utvecklare, allt eftersom han/hon är ledig, dra ett kort från att-göra-kolumnen till utvecklarkolumnen. Tavlan som dessa kort finns på förtjänar en närmare titt.
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
- Att göra,
- dev
- Testning
- 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änstal kan placeras högst upp i kolumnerna i både fysiska och digitala Kanban-tavlor. Vem som helst i teamet kan hantera statusen för sitt kort, och hela teamet kan visualisera arbetsflödet. Digitalbrädor som till exempel Roundup lägg till samma gränser med automatisk cykeltid trackung. Härnäst ska vi lära oss om Kanban-arbetsflödet som dessa kolumner representerar.
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. |
Observera att "klara för"-tillstånden är köer, inte arbete. Ett kort kan ligga i en obegränsad tid, så regeln som flyttar kort spelar större roll än tillstånden.
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. Allt här beror på ett nummer: WIP-gränsen.
Begränsande WIP (pågående arbete)
I Kanban-metoden begränsar arbete pågående arbete antalet uppgifter/kort som en teammedlem eller ett helt team kan arbeta med samtidigt.
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 förbättrar arbetsflödets rörelseförmåga så att uppgifterna fortsätter att röra sig.
- Det hjälper också till att lösa blockeringar eftersom en individ inte växlar mellan olika uppgifter.
⚠️ Varning: En för högt satt gräns är detsamma som ingen gräns – kortens kö och cykeltid sträcks ut. En för lågt satt gräns gör att folk blir inaktiva. Ändra gränsen för en kolumn i taget och observera cykeltiden i två veckor.
Det är den sista teorin; avsnittet nedan omsätter den i handling.
Hur man implementerar Kanban steg för steg
Kanban är lätt att börja med: steg ett beskriver vad du redan gör. Arbeta igenom denna sekvens med hela teamet närvarande.
- Kartlägg det aktuella arbetsflödet. Gå ett färdigt objekt baklänges genom varje överlämning det passerade. Varje överlämning blir en kolumn, inklusive de väntelägen som ingen officiellt äger.
- Rita tavlan. En kolumn per delstat, från vänster till höger, som slutar på Klar. En whiteboardtavla med post-it-lappar räcker för den första månaden.
- Skriv korten. Ge varje föremål ombord ett kort med prioritet, ägare, typ och förfallodatum och placera det sedan i den kolumn som matchar dess verkliga skick.
- Definiera "klar" för varje kolumn. Skriv utgångskriterierna på tavlan. Denna praxis med explicita policyer är det som hindrar kort från att studsa baklänges.
- Ange initiala WIP-gränser. Välj ett startnummer för varje kolumn utom Att göra och Klart med hjälp av en metod nedan och skriv det sedan ovanför rubriken.
- Håller med om dragregeln. Ingen börjar på ett nytt kort medan deras kolumn har nått sin gräns; de hjälper istället till att rensa kolumnen till höger om sig.
- Gå på brädan dagligen. Flytta från höger till vänster, med det äldsta kortet först, och fråga vad som blockerar detta kort och vem som kan öppna det idag.
- Mät och dra sedan åt. Efter två veckor visar cykeltidsdata vilken kolumn som innehåller kort längst. Sänk den gränsen eller lägg till kapacitet och upprepa sedan.
Det är i steg fem som de flesta team stannar upp, så här är de tre storleksmetoder som utövare använder:
| WIP-storleksmetod | Hur det fungerar |
|---|---|
| Lagstorlek plus ett | Gränsen är lika med antalet personer som arbetar i den kolumnen plus en slackplats för ett blockerat objekt. Bäst för en ny anslagstavla utan data. |
| Två till tre föremål per person | Multiplicera personerna i kolumnen med två eller tre; tre utvecklare vid två punkter vardera ger sex. |
| Genomströmning x cykeltid | Tillämpa WIP = dataflöde x cykeltid på din egen historik och sätt sedan gränsen något under resultatet. |
Behandla det första talet som en hypotes. Para ihop tavlan med formella agila tester hindrar testkolumnen från att bli flaskhalsen, och de två tidpunkterna nedan visar om det fungerar.
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
💡 Tips: Ledtiden är vad kunden upplever; cykeltiden är vad teamet kontrollerar. Ett stort glapp innebär att arbetet väntar i en kö innan någon börjar det, så fixa intaget innan du snabbar upp teamet.
I idealfallet bör skillnaden mellan ledtid och cykeltid vara minimal, och Kanban använder ett kumulativt flödesdiagram (CFD) för att mäta historiska data för led- och cykeltider. Det diagrammet är ämnet för nästa avsnitt.
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-diagrammet ger dig indikatorer eller problemområden att åtgärda. Det ger dig en tydlig bild, och baserat på detta diagram kan du korrigera ditt teams ledtid och cykeltid. Det kumulativa flödesdiagrammet nedan visar varje tillstånd som ett färgat band; ett band som fortsätter att breddas är flaskhalsen.
Diagrammet läses igenom fyra kvantiteter:
- lead Time: Det är varaktigheten mellan ett nytt korts ankomst i ditt arbetsflöde och dess slutliga avgång från arbetsflödet.
- Cykeltid: Det är en tidsperiod mellan kortets ankomst i fungerande tillstånd och när kortet är redo att släppas.
- WIP: Pågående arbete (WIP) begränsar det maximala antalet arbetsobjekt i de olika stadierna av arbetsflödet.
- genomströmning: Det är den faktiska prestandan, och den talar om det faktiska antalet kort som levereras under en given tidsram.
Throughput = WIP/Cycle Time
Det täcker artefakter, mekanik och mätvärden. Den återstående frågan är hur Kanban står sig i jämförelse med Scrum.
Scrum vs. Kanban
Här är de viktiga skillnaderna mellan Scrum vs. KanbanFör en större bild, se Agil kontra Scrum.
| 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. |
| 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. |
| 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 misslyckas. |
| 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. | Stora projekt hanteras som en kontinuerligt flöde av enskilda artiklar istället för att delas upp i omgångar. |


