Kanban-model in software-engineering
Wat is Kanban?
Kanban is een zeer populair raamwerk voor ontwikkeling in de agile softwareontwikkelingsmethodologie. Het biedt een transparante manier om de taken en het werkvermogen van een team te visualiseren. Er wordt voornamelijk gebruik gemaakt van fysieke en digitale borden waarmee de teamleden de huidige status van het project waaraan ze werken kunnen visualiseren.
Kanban is ontstaan in Toyota in de jaren 1940. Kanban betekent in het Japans "billboards". Het Kanban-bord heeft kolommen en storycards. De kolommen zijn niets, maar workflowstaten en kaarten zijn niets meer dan een demonstratie van de daadwerkelijke taak die een teamlid uitvoert.
Wanneer Kanban gebruiken?
Hier zijn de redenen om de Kanban-ontwikkelmethode te gebruiken:
- Kanban kan in elk domein worden gebruikt en kan zeer effectief worden gebruikt bij softwareontwikkeling. Kanban-projectmanagement helpt bij het verbeteren van de efficiëntie van het team.
- Het is een pull-gebaseerd systeem. Taken worden verwijderd zodra een individu vrij is.
- Kanban moet worden gebruikt als u uw werk op elk gewenst moment wilt vrijgeven. Het vereist git-vertakking, maar het is goed te doen.
- Kanban moet worden gebruikt als u de prioriteiten direct wilt wijzigen. Daarvoor hoeft u dit verhaal alleen maar bovenaan de takenlijst te plaatsen.
- Het moet worden gebruikt als u uw werk wilt visualiseren en de voortgang van uw taken visueel wilt zien.
Kanban-kaarten
Het Kanban-systeem beveelt visualisatie van werk aan. Het suggereert het gebruik van het fysieke en het digitale bord.
De Kanban-kaarten zijn essentiële stukken op het Kanban-bord, omdat ze het werk vertegenwoordigen waar het team aan werkt. Deze kaarten zullen hebben
- Prioriteit
- Eigenaar
- Type
- Opleveringsdatum
Een kolom op het Kanban-bord vertegenwoordigt de werkfase en u kunt een WIP-limiet (Work in Progress) op de kolom plaatsen. De WIP-limiet betekent het maximale aantal kaarten dat in die kolom kan blijven staan.
Omdat Kanban-projectmanagement een pull-gebaseerd systeem gebruikt, kan een ontwikkelaar, wanneer hij/zij vrij is, een kaart van de to-do-kolom naar de dev-kolom trekken.
Kanban Board
Kanban Board is een agile projectmanagementtool die Kanban helpt implementeren om projecten voor persoonlijke en zakelijke doeleinden te beheren. Het is een fysiek of digitaal (JIRA) bord dat is ontworpen om teams te helpen hun werk in verschillende fasen en processen te visualiseren. Het helpt ook om de werkfasen weer te geven met kolommen met behulp van kaarten.
Het heeft kolommen die de status van het werk weergeven, zoals
- Te doen,
- Dev
- Testen
- Gereed.
Elk van deze kolommen kan kaarten <=de WIP-limiet bevatten. De kaarten vertegenwoordigen het eigenlijke werk.
U kunt positieve getallen gebruiken om work-in-progress te beperken, en dit limietnummer kan bovenaan de kolommen in zowel fysieke als digitale Kanban-borden worden geplaatst. Elk individu van het team kan de status van zijn kaart beheren, en het hele team kan de workflow visualiseren. In deze Kanban-tutorial leren we over Kanban Workflow.
Kanban-workflow
Kanban-workflow is een reeks stappen die teams helpt expliciet beleid en principes in Kanban te definiëren. Het vertegenwoordigt de regels en procedures terwijl het werk gaande is in verschillende stadia van ontwikkelings- en opleveringscycli. De Kanban-workflow bestaat uit stapsgewijze processen tussen het starten en het opleveren van een bepaalde taak.
Het basisprincipe dat Kanban volgt is: “Stop met beginnen, begin met afwerken”. Met behulp van WIP-limieten wordt meer werk gedaan. Er zijn aanpasbare Kanban-workflows en -statussen beschikbaar in elke moderne tool zoals JIRA.
Hieronder staan de basisstatussen die veel softwareteams volgen voor hun workflowbeheer.
Staten | Inzicht in taken |
---|---|
Te doen | Taken komen hier voor het eerst in deze staat aan. |
Klaar voor analyse | Analyseer de taak en voeg de vereisten volledig toe. |
Klaar voor ontwikkeling | Analyse voltooid en ontwikkeling kan beginnen. |
In de ontwikkeling | Er worden taken ontwikkeld. |
Klaar om te testen | De ontwikkeling is voltooid en het testen kan beginnen. |
Bij het testen | Taken worden getest. |
Klaar voor release | Testen voltooid; vrijlating kan gebeuren. |
Vrijgegeven/klaar | Vrijgelaten. |
De vier principes van Kanban
Hieronder staan de vier belangrijkste kernprincipes van Kanban:
- Begin met wat je nu hebt: Het Kanban-systeem stelt voor om stapsgewijs te werken en te beginnen met wat je momenteel hebt. Aangezien het een van de praktijken is om voortdurend te verbeteren, moet u het systeem geleidelijk verbeteren.
- Ga akkoord met het nastreven van stapsgewijze, evolutionaire verandering: Kanban beveelt een stapsgewijze verandering in het proces aan, en u mag geen grote verandering in het proces in één keer doorvoeren.
- Respecteer het huidige proces, rollen en verantwoordelijkheden: Nogmaals, begin met wat je nu hebt en verander het proces, de rol en de verantwoordelijkheden stapsgewijs.
- Stimuleer leiderschap op alle niveaus: Ieder individu kan optreden als leider en ideeën aandragen om de efficiëntie van het algehele Kanban-systeem te verbeteren. Je moet niet denken dat dit een activiteit op managementniveau is, en zelfs het jongste lid van het team kan als leider optreden.
De zes Kanban-kernpraktijken
Hieronder staan de zes belangrijkste kernpraktijken van Kanban:
- Visualiseer de werkstroom: Dit principe suggereert het hebben van een Kanban-bord (fysiek of digitaal) om de workflow te visualiseren. Ieder individu van een team moet zijn kaart en de kaarten van andere teamleden zien. U kunt uw kaarten in verschillende kolommen verplaatsen, zoals weergegeven in de bovenstaande afbeelding. Het brengt veel transparantie binnen het team en maakt het ook makkelijker om blokkades op te lossen
- Beperk werk in uitvoering: Kanban is een pull-gebaseerd systeem en verbetert de efficiëntie van een team om het onderhanden werk te beperken en taken te hebben die binnen het gegeven tijdsbestek door het team kunnen worden voltooid. Deze WIP-limiet geldt van het begin tot het einde van de workflow. U kunt de limiet bovenop de kolom toepassen met een positief geheel getal.
- Focus op stroom: Dit principe richt zich op de doorstroming en op eventuele onderbrekingen. Als er onderbrekingen of blokkades zijn, moeten deze permanent worden verholpen.
- Expliciet beleid: Beleid kan in een team worden opgesteld om het herwerk te verminderen en zich te concentreren op de gebieden die aandacht vereisen of waar dit effectiever is.
- Terugkoppeling: Feedbackloops zijn zeer essentieel in Kanban. Het is niet alleen binnen het team, maar ook tussen meerdere teams, coaches, enz. Dit helpt bij het verbeteren van de algehele gezondheid van het Kanban-systeem.
- CONTINUE VERBETERING: Dit is het kernprincipe van het Kanban-systeem. Er staat dat je het proces altijd kunt verbeteren en dat leidt tot meer efficiëntie.
Pull-gebaseerd systeem
Kanban is een op pull gebaseerde methode waarbij taken worden getrokken in plaats van gepusht. Zodra je je huidige kaart hebt voltooid, kun je een nieuwe kaart uit de vorige kolom van het Kanban-bord trekken.
Met de WIP-limiet helpt Kanban bij het verbeteren van Lead Time en Cycle Time. Er moet zo min mogelijk ruimte zijn tussen deze twee timings. Bijvoorbeeld, we hebben 5 ontwikkelaars en slechts 1 tester; wat gebeurt er in dit geval? Er zouden altijd veel kaarten zijn die getest moeten worden, en die zullen inactief blijven en wachten.
Om de hierboven genoemde problemen te overwinnen en de efficiëntie te verbeteren, volgt Kanban de op pull gebaseerde aanpak met WIP-limieten, waarbij er een beperkt aantal kaarten kan worden getrokken.
Een tester haalt dus een taak uit de fase 'klaar om te testen' wanneer hij zijn huidige taak heeft voltooid. Met de WIP-limiet in Kanban-kolommen (ontwikkelingsfasen) zul je niet veel onbeheerde kaarten in de Kanban-workflow hebben.
Het op pull gebaseerde systeem helpt ook bij het vinden van de juiste snelheid voor het team. Met de juiste snelheid presteert het team beter.
Doorlooptijd en cyclustijd
Bij de Kanban-methode worden doorlooptijd en cyclustijd veel gebruikt. Er is een verschil tussen beide, en het is belangrijk om dat te begrijpen om verwarring te voorkomen.
Levertijd | Cyclustijd |
---|---|
De doorlooptijd wordt gemeten als de tijd tussen de aankomst van de taak in uw workflow en het vertrek ervan uit de workflow, wat betekent dat deze is vrijgegeven. | De cyclustijd wordt gemeten als de tijd tussen de aankomst van de taak in de status 'in uitvoering' en de aankomst van de taak in de status 'klaar voor vrijgave'. |
Hier is het ook belangrijk dat u begrijpt dat u de tijd die verstrijkt tussen het klaar zijn voor vrijgave en de daadwerkelijke vrijgave niet meetelt.
Cycle Time = Work in Progress/Throughput
In het ideale scenario zou de kloof tussen de doorlooptijd en de cyclustijd minimaal moeten zijn, en gebruikt Kanban een cumulatief stroomdiagram (CFD) om historische gegevens over de lead- en cyclustijd te meten.
Cumulatief stroomdiagram (CFD)
CFD is een grafiek die beschikbaar is in alle toonaangevende werkstroombeheertools zoals JIRA. Dit diagram meet het totale aantal werkkaarten/taken dat in de workflow is binnengekomen en dat in de loop van de tijd voltooide kaarten/taken heeft verzameld.
Het helpt u een schatting te krijgen van de gemiddelde doorlooptijd en cyclustijd voor een vooraf gespecificeerde tijd.
Het CFD-diagram geeft u indicatoren of probleemgebieden die u kunt oplossen. Het geeft u een duidelijk beeld, gebaseerd op dit diagram. U kunt de doorlooptijd en cyclustijd van uw team corrigeren.
- Levertijd: Het is de tijdsduur tussen de aankomst van een nieuwe kaart in uw workflow en het definitieve vertrek ervan uit de workflow.
- Cyclustijd: Dit is de tijdsduur tussen het moment waarop de kaart in werkende staat arriveert en het moment waarop de kaart gereed is voor vrijgave.
- WIP: Work in progress (WIP) beperkt het maximale aantal werkitems in de verschillende fasen van de workflow.
- Doorvoer: Het is de daadwerkelijke prestatie en vertelt het werkelijke aantal kaarten dat in een bepaald tijdsbestek is afgeleverd.
Doorvoer = WIP/cyclustijd
WIP beperken (onderhanden werk)
In de Kanban-ontwikkelingsmethodologie beperkt WIP het aantal taken/kaarten waaraan een teamlid of het hele team tegelijk kan werken.
De WIP-limieten zorgen ervoor dat het team hun werk stabiliseert en vergroten het voorspellende karakter, wat essentieel is in het pull-gebaseerde systeem. Meestal wordt de WIP-limietbeslissing door het team zelf genomen.
Reden om de OHW-limieten in te stellen
Hier zijn redenen om de WIP-limieten in te stellen:
- Het verschuift de focus naar het gedaan krijgen van dingen, omdat een individu zich op één taak tegelijk concentreert.
- Het helpt teams hun capaciteiten te begrijpen.
- Het verbetert de productiviteitsdoorloop- en cyclustijd.
- Het helpt bij het vermijden van het opstapelen van taken (in de wachtmodus).
- Het helpt bij de beweging van de workflow en taken blijven in beweging.
- Het helpt ook om blokkades op te lossen, omdat een individu niet tussen verschillende taken hoeft te schakelen.
Scrum versus. Kanban
Hier zijn de belangrijke verschillen tussen Scrum versus. Kanban
Worsteling om de bal | Kanban |
---|---|
Worsteling om de bal legt de nadruk op de planningHet begint met sprintplanning en eindigt met sprintretrospectie. Er worden veel vergaderingen gehouden die helpen om te verzekeren dat het team op één lijn zit met de volgende stappen, prioriteiten en lessen uit eerdere sprints. | Kanban staat open voor het onderweg aanbrengen van wijzigingen. Het betekent dat er minder stijfheid is dingen kunnen vaak veranderen. |
Het adviseert het verzamelen van tijd metingen gemaakt tijdens sprints | Kanban beveelt grafieken aan om een overzicht te krijgen van de voortgang van het team in de loop van de tijd. |
Worsteling om de bal niet meer vraagt om een commitment van teams. In plaats daarvan gaat het om de sprintdoelen en -prognoses. | Kanban vertrouwt op time-boxing en prognoses. |
Het legt de nadruk op planning, enzovoort schatting speelt een zeer belangrijke rol in Scrum | Kanban heeft geen verplichte eisen voor schatting. |
Alle individu heeft zijn rol en verantwoordelijkheden. | Nee rollen zo flexibel instellen als het gaat om individuele verantwoordelijkheden. |
De iteraties/Sprints hebben een vaste duur. Deze duur varieert van 2 weken tot 1 maand. | Kanban wel niet op basis van duur. Dit ding wordt gemeten met betrekking tot cyclustijden. |
Teams zijn verplicht om zich te engageren een bepaalde hoeveelheid werk. | Toezegging niet nodig het is optioneel voor teams. |
Bij deze methode multifunctionele teams zijn belangrijk omdat ze elke verstoring kunnen opvangen die een knelpunt in de softwareontwikkeling kan veroorzaken. | Met gespecialiseerd team is belangrijk. |
Het is het is niet mogelijk om items toe te voegen tot voortdurende iteraties. | Nieuw items kunnen eenvoudig worden toegevoegd als de extra capaciteit beschikbaar is. |
Een sprintbacklog is alleen eigendom van een enkel elftal. | Meerdere teamss kunnen Kanban-bord delen. |
Leveringen zijn bepaald door sprints, waarvan een reeks werkzaamheden moet worden voltooid en gereed moet zijn voor beoordeling. | Producten en processen zijn dat wel continu geleverd op een noodzakelijke basis. Dus het test- en reviewproces gaat gelijktijdig door. |
Scrum-softwareontwikkelmethode richt zich op de achterstand. | Kanban-methode volledig richt zich op het procesdashboard. |
Alle teamlid heeft een specifieke rol in Scrum bepaalt de master de tijdlijnen, stelt de producteigenaar doelen en doelstellingen, en teamleden voeren het ontwikkelingswerk uit. | Er zijn geen vooraf gedefinieerde rollen voor een team. Er kan echter nog steeds een Projectmanager zijn; het team wordt aangemoedigd om samen te werken en samen te werken. |
Beste voor projecten met veranderende prioriteiten. | Ideaal voor teams met stabiele prioriteiten dat in de loop van de tijd waarschijnlijk niet zal veranderen. |
Meet de productie snelheid gebruiken door sprints. | Meet de productie met behulp van cyclustijd of de exacte tijd die nodig is om een volledig deel van een project te voltooien. |
Scrum vereist een volledige verschuiving van het traditionele model naar het Agile Scrum-model dat het project zou implementeren. | Kanban staat geen drastische veranderingen toe in het project. |
Het is een ideale methode voor projecten met zeer uiteenlopende prioriteiten. | Best geschikt voor teams met stabiele prioriteiten. |
Bij Scrum wordt de gehele team richt zich op samenwerken en de taak voltooien kwaliteitsvol ontwikkelingswerk te leveren. | Teams werken om doelen te bereiken en verkort de tijd om het hele proces te voltooien. Een verkorting van de tijdcyclus is hier dus de grootste indicator voor succes. |
Worsteling om de bal nadruk op de schema's; nieuwe items kunnen niet worden toegevoegd aan lopende iteraties. | Kanban is van nature meer iteratief kent geen specifieke termijnen. Zodat er voortdurend nieuwe artikelen kunnen worden toegevoegd wanneer er extra capaciteit beschikbaar is. |
Het totale werk wordt gedaan in batches/Sprints. | Het hele project wordt uitgevoerd op de beweging van werkitem met één thread stroomt. |
Scrum-meester fungeert als probleemoplosser. | Kanban moedigt aan ieder teamlid is een leider en het delen van de verantwoordelijkheid onder hen allen. |
Scrum schrijft voor timeboxed iteraties. | Kanban richt zich op een andere duur plannen voor individuele iteratie. |
Scrum helpt bedrijven daarbij tijd en geld besparen. | Kanban-methode focus op continue verbetering, productiviteit en efficiëntie. |
Bereiken stabiele en consistente communicatie van prestaties op alle niveaus. | Teamleden hebben meer kans om dat te doen hun doelen veel gemakkelijker bereiken vanwege de visuele aard van Kanban-borden. |
Project zijn gecodeerd en getest tijdens de sprint beoordelen | Teamleden hebben meer kans om dat te doen hun doelen veel gemakkelijker bereiken vanwege de visuele aard van Kanban-borden. |
Het is gemakkelijker aan te passen aan de voortdurende veranderingen vanwege de korte sprints en regelmatige feedback. | Het is ontworpen voor een regelmatige, stabiele outputkunnen grote veranderingen in de klantvraag ervoor zorgen dat Kanban mislukt. |
De totale kosten van het project zijn minimaal, wat kan leiden tot sneller en goedkoper resultaat. | Als een taak niet correct wordt ingeschat, wordt de de totale projectkosten zullen nooit accuraat zijnIn dergelijke gevallen kan de taak over meerdere sprints worden gespreid. |
Deze methodiek vereist ervaren teamleden alleen. Als het team dus uit mensen bestaat die geen expert zijn, kan het project niet op tijd worden afgerond. | Nee specifieke tijdsbestekken worden bij elke fase toegewezen, zodat teamleden nooit een idee krijgen hoeveel tijd ze in elke fase kunnen nemen. |
Bij deze Agile Scrum-methode wel gemakkelijker een kwaliteitsproduct te leveren op een gepland tijdstip. | Het is ontworpen voor een regelmatige, gestage output, grote veranderingen in de vraag van klanten kunnen Kanban doen dalen. |
De projectplan zal nooit storen zelfs als een teamlid het team verlaat. | Als een van de teamleden tijdens de ontwikkeling vertrekt, kan dat de projectontwikkeling schaden. |
Dagelijkse vergaderingen soms frustreren teamleden. | Verouderd Kanban-bord kan tot problemen leiden in het ontwikkelingsproces. |
Grote projecten kunnen gemakkelijk worden opgesplitst in gemakkelijk te beheren sprints. |
Samenvatting
- Kanban-definitie: Kanban wordt gedefinieerd als een agile ontwikkelingsmethodologie om software, auto's, goederen, medicijnen, schoenen of ander productiewerk te ontwikkelen.
- Kanban gebruikt het Kanbanbord om het werk te visualiseren. Het gebruikt kolommen als fasen (to-do, dev, testen, enz.) en kaarten als werkitem.
- De Kanban-methodologie ondersteunt het fysieke en digitale bord voor visualisatie.
- Kanban is een op pull-gebaseerd systeem en kaarten worden door teamleden van de vorige fase naar de huidige fase getrokken.
- De Kanban-methode maakt gebruik van het CFD-diagram om de doorlooptijd en cyclustijd van het team te begrijpen. Dit diagram helpt de teams om de kloof tussen deze twee timings te dichten en de efficiëntie te verbeteren.
- Kanban-ontwikkelingsmethodologie, WIP beperkt het aantal taken/kaarten waaraan een teamlid of het hele team tegelijk kan werken.
- Door de WIP-limieten verschuift de focus naar het gedaan krijgen van dingen, omdat een individu zich op één taak tegelijk kan concentreren.