Kanban Model i Software Engineering

Hvad er Kanban?

Kanban er en meget populรฆr ramme for udvikling i den agile softwareudviklingsmetodologi. Det giver en gennemsigtig mรฅde at visualisere et teams opgaver og arbejdskapacitet. Det bruger primรฆrt fysiske og digitale tavler til at give teammedlemmerne mulighed for at visualisere den aktuelle tilstand af det projekt, de arbejder pรฅ.

Kanban opstod i Toyota i 1940'erne. Kanbans betydning pรฅ japansk er "billboards". Kanban-brรฆttet har kolonner og historiekort. Kolonnerne er ingenting, men arbejdsprocestilstande og -kort er intet andet end en demonstration af den faktiske opgave, et teammedlem udfรธrer.

Hvornรฅr skal man bruge Kanban?

Her er grundene til at bruge Kanban-udviklingsmetoden:

  • Kanban kan bruges i ethvert domรฆne, og det kan bruges meget effektivt i softwareudvikling. Kanban projektledelse hjรฆlper med at forbedre effektiviteten af โ€‹โ€‹teamet.
  • Det er et pull-baseret system. Opgaver bliver trukket, sรฅ snart en person er fri.
  • Kanban bรธr bruges, nรฅr du vil frigive dit arbejde til enhver tid. Det krรฆver git branching, men det kan lade sig gรธre.
  • Kanban skal bruges, nรฅr du vil รฆndre prioriteterne i farten. Til det skal du blot placere denne historie รธverst i to-do-kรธen.
  • Den skal bruges, nรฅr du vil visualisere dit arbejde, og du vil se fremdriften i dine opgaver visuelt.

Kanban kort

Kanban-systemet anbefaler visualisering af arbejde. Det foreslรฅr brugen af โ€‹โ€‹den fysiske og den digitale tavle.

Kanban kort
Kanban kort

Kanban-kortene er vigtige brikker pรฅ Kanban-brรฆttet, da det reprรฆsenterer det arbejde, som teamet arbejder pรฅ. Disse kort vil have

  1. Prioritet
  2. Ejer
  3. Type
  4. Afleveringsdato

En kolonne i Kanban-tavlen reprรฆsenterer arbejdsstadiet, og du kan placere en WIP-grรฆnse (Work in Progress) pรฅ kolonnen. WIP-grรฆnsen betyder det maksimale antal kort, der kan forblive i den kolonne.

Da Kanban projektledelse bruger et pull-baseret system, nรฅr og nรฅr en udvikler er ledig, kan han/hun trรฆkke et kort fra to-do-kolonnen til dev-kolonnen.

Kanban Board

Kanban Board er et agilt projektstyringsvรฆrktรธj, der hjรฆlper med at implementere Kanban til at styre projekter til personlige og forretningsmรฆssige formรฅl. Det er en fysisk eller digital (JIRA) tavle designet til at hjรฆlpe teams med at visualisere deres arbejde pรฅ forskellige stadier og processer. Det hjรฆlper ogsรฅ med at reprรฆsentere stadierne af arbejdet med kolonner ved hjรฆlp af kort.

Det har kolonner, der reprรฆsenterer status for arbejdet som

  1. At gรธre,
  2. dev
  3. Test
  4. Udfรธrt.

Hver af disse kolonner kan have kort <=WIP-grรฆnsen. Kortene reprรฆsenterer det faktiske arbejde.

Du kan bruge positive tal til at begrรฆnse igangvรฆrende arbejde, og dette grรฆnsetal kan placeres รธverst i kolonnerne i bรฅde fysiske og digitale Kanban-tavler. Enhver person i teamet kan administrere sit korts tilstand, og hele teamet kan visualisere arbejdsgangen. Nรฆste i denne Kanban-tutorial lรฆrer vi om Kanban Workflow.

Kanban arbejdsgang

Kanban arbejdsgang er et sรฆt trin, der hjรฆlper teams med at definere eksplicitte politikker og principper i Kanban. Det reprรฆsenterer reglerne og procedurerne, mens arbejdet foregรฅr pรฅ tvรฆrs af forskellige stadier af udviklings- og leveringscyklusser. Kanban workflow bestรฅr af trin-for-trin processer mellem start og levering af en bestemt opgave.

Det grundlรฆggende princip, Kanban fรธlger, er, "stop med at starte, start med at afslutte". Ved hjรฆlp af WIP-grรฆnser fรฅr den gjort mere arbejde. Der er tilpassede Kanban-arbejdsgange og tilstande tilgรฆngelige i ethvert moderne vรฆrktรธj som JIRA.

Nedenfor er de grundlรฆggende tilstande, som mange softwareteams fรธlger for deres workflowstyring.

Stater Forstรฅelse af opgaver
At gรธre Opgaver ankommer her for fรธrste gang i denne tilstand.
Klar til analyse Analyser opgaven og tilfรธj krav fuldstรฆndigt.
Klar til udvikling Analyse afsluttet og udvikling kan starte.
I udviklingen Opgaver er under udvikling.
Klar til test Udvikling afsluttet, og nu kan test starte.
I testen Opgaverne afprรธves.
Klar til udgivelse Test afsluttet; frigivelse kan ske.
Frigivet/Udfรธrt Udgivet.

De fire principper for Kanban

Nedenfor er de fire vigtigste kerneprincipper i Kanban:

  1. Start med det, du har nu: Kanban-systemet foreslรฅr at arbejde trinvist og starte med det, du har i รธjeblikket. Da en af โ€‹โ€‹dens praksis er at forbedre lรธbende, skal du forbedre systemet gradvist.
  1. Accepter at forfรธlge inkrementelle, evolutionรฆre forandringer: Kanban anbefaler en trinvis รฆndring i processen, og du mรฅ ikke lave en stor รฆndring i processen pรฅ รฉn gang.
  1. Respekter den nuvรฆrende proces, roller og ansvar: Begynd igen med det, du har nu, og skift processen, rollen og ansvarsomrรฅder gradvist.
  1. Tilskynd til lederskab pรฅ alle niveauer: Hvert individ kan fungere som leder og give ideer til at forbedre effektiviteten af โ€‹โ€‹det overordnede Kanban-system. Du skal ikke tro, at dette er en aktivitet pรฅ ledelsesniveau, og selv det yngste medlem af teamet kan fungere som leder.

De seks Kanban-kernepraksis

Fรธlgende er de vigtigste seks kernepraksis i Kanban:

  1. Visualiser arbejdsgangen: Dette princip foreslรฅr at have et Kanban-kort (fysisk eller digitalt) til at visualisere arbejdsgangen. Hver enkelt person i et hold skal se sit kort og kort fra andre holdmedlemmer. Du kan flytte dine kort i forskellige kolonner som vist pรฅ billedet ovenfor. Det giver masser af gennemsigtighed i teamet og gรธr det ogsรฅ nemmere at lรธse blokeringer
  1. Begrรฆns igangvรฆrende arbejde: Kanban er et pull-baseret system, og det forbedrer effektiviteten af โ€‹โ€‹et team til at begrรฆnse igangvรฆrende arbejde og have opgaver, der kan udfรธres inden for den givne tidsramme af teamet. Denne WIP-grรฆnse gรฆlder fra begyndelsen til slutningen af โ€‹โ€‹workflowet. Du kan anvende grรฆnsen oven pรฅ kolonnen ved hjรฆlp af et positivt heltal.
  1. Fokus pรฅ flow: Dette princip fokuserer pรฅ flow og pรฅ eventuelle afbrydelser. Hvis der er afbrydelser eller blokeringer, skal de rettes permanent.
  1. Eksplicitte politikker: Politikker kan etableres i et team for at reducere omarbejdet og fokusere pรฅ de omrรฅder, der krรฆver opmรฆrksomhed, eller hvor det er mere effektivt.
  1. Feedbackslรธjfe: Feedback-loops er meget vigtige i Kanban. Det er ikke kun inden for holdet, men mellem flere hold, trรฆnere osv. Dette hjรฆlper med at forbedre den generelle sundhed i Kanban-systemet.
  1. Kontinuerlig forbedring: Dette er kerneprincippet i Kanban-systemet. Der stรฅr, at man altid kan forbedre processen, og det vil resultere i en bedre effektivitet.

Pull Baseret System

Kanban er en pull-baseret metode, hvor opgaver bliver trukket frem for at blive skubbet. Sรฅ snart du har udfyldt dit nuvรฆrende kort, kan du trรฆkke et nyt kort fra den forrige kolonne pรฅ Kanban-brรฆttet.

Med WIP-grรฆnsen hjรฆlper Kanban med at forbedre Lead Time og Cycle Time. Der bรธr vรฆre det mindst mulige mellemrum mellem disse to tidspunkter. For eksempel har vi 5 udviklere og kun 1 tester; hvad vil der ske i dette tilfรฆlde? Der vil altid vรฆre mange kort, der krรฆver test, og de vil sidde stille og vente.

For at overvinde de ovenfor nรฆvnte problemer og forbedre effektiviteten, fรธlger Kanban den pull-baserede tilgang med WIP-grรฆnser, hvor der ville vรฆre et begrรฆnset antal kort, der skal trรฆkkes.

Sรฅ en tester vil trรฆkke en opgave fra "klar til test"-stadiet, nรฅr han er fรฆrdig med sin nuvรฆrende opgave. Med WIP-grรฆnsen i Kanban-kolonner (udviklingsstadier) vil du ikke have mange uovervรฅgede kort i Kanban-arbejdsgangen.

Det pull-baserede system hjรฆlper ogsรฅ med at finde den rigtige hastighed for holdet. Med den rigtige hastighed pรฅ plads vil holdet prรฆstere bedre.

Ledetid og cyklustid

I Kanban-metoden er ledetid og cyklustid meget brugt, der er forskel pรฅ de to, og det er vigtigt at forstรฅ det for at undgรฅ forvirringen.

Leveringstid Cyklustid
Ledetid mรฅles som tiden mellem opgavens ankomst i din arbejdsgang og dens afgang fra arbejdsgangen, hvilket betyder, at den er blevet frigivet. Cyklustiden mรฅles som tiden mellem opgavens ankomst i tilstanden "i gang" og ankomsten af โ€‹โ€‹opgaven i "klar til frigivelse".

Her er det ogsรฅ vigtigt at forstรฅ ikke at medtage den tid, der gรฅr mellem klar til udgivelse og faktisk udgivelse.

Cycle Time = Work in Progress/Throughput

I det ideelle scenarie bรธr klรธften mellem ledetid og cyklustid vรฆre minimal, og Kanban bruger et kumulativt flowdiagram (CFD) til at mรฅle historiske data for lead og cyklustid.

Kumulativt flowdiagram (CFD)

CFD er et diagram, som er tilgรฆngeligt i alle fรธrende vรฆrktรธjer til styring af arbejdsgange ligesom JIRA. Dette diagram mรฅler det samlede antal arbejdskort/opgaver, der kom ind i arbejdsgangen og samlede fuldfรธrte kort/opgaver over tid.

Det hjรฆlper dig med at fรฅ et estimat af gennemsnitlig leveringstid og cyklustid for forudbestemt tid.

CFD-diagram vil give dig indikatorer eller problemomrรฅder, du skal rette. Det vil give dig et klart billede og baseret pรฅ dette diagram. Du kan rette dit teams gennemlรธbstid og cyklustid.

Kanban kumulativt flowdiagram
Kanban kumulativt flowdiagram
  1. Leveringstid: Det er varigheden mellem et nyt korts ankomst til din arbejdsgang og dets endelige afgang fra arbejdsgangen.
  2. Cyklustid: Det er en varighed mellem kortets ankomst i funktionstilstand og nรฅr kortet er klar til frigivelse.
  3. WIP: Igangvรฆrende arbejde (WIP) begrรฆnser den maksimale mรฆngde af arbejdsemner i de forskellige stadier af arbejdsgangen.
  4. gennemlรธb: Det er den faktiske ydeevne, og den fortรฆller det faktiske antal kort leveret i en given tidsramme.
  5. Gennemlรธb = WIP/cyklustid

Begrรฆnsning af WIP (igangvรฆrende arbejde)

I Kanban udviklingsmetodologi begrรฆnser WIP antallet af opgaver/kort, som kan arbejdes med af et teammedlem eller hele pรฅ รฉn gang.

WIP-grรฆnserne sikrer, at teamet stabiliserer deres arbejde og รธger den prรฆdiktive karakter, hvilket er essentielt i det pull-baserede system. Normalt trรฆffes WIP-grรฆnsebeslutningen af โ€‹โ€‹teamet selv.

Grund til at indstille WIP-grรฆnserne

Her er grunde til at indstille WIP-grรฆnserne:

  • Det flytter fokus pรฅ at fรฅ tingene gjort, da en person fokuserer pรฅ en enkelt opgave ad gangen.
  • Det hjรฆlper teams til at forstรฅ deres kapacitet.
  • Det forbedrer produktiviteten og cyklustiden.
  • Det hjรฆlper med at undgรฅ ophobning af opgaver (i ventetilstand).
  • Det hjรฆlper med at bevรฆge arbejdsgangen, og opgaver bliver ved med at bevรฆge sig.
  • Det hjรฆlper ogsรฅ med at lรธse blokeringer, da en person ikke skifter mellem forskellige opgaver.

Scrum vs. Kanban

Her er de vigtige forskelle mellem Scrum vs. Kanban

Scrum Kanban
Scrum lรฆgger vรฆgt pรฅ planlรฆgning. Det starter med sprintplanlรฆgning og ender med sprint retrospektiv. Der afholdes mange mรธder, som er med til at sikre, at holdet er pรฅ linje med de nรฆste trin, prioriteter og erfaringer fra tidligere sprints. Kanban er รฅben for at foretage รฆndringer pรฅ farten. Det betyder, at der er mindre stivhed og ting kan รฆndre sig ofte.
Det anbefaler indsamling af tidsmรฅlinger lavet under spurter Kanban anbefaler grafer for at fรฅ et overblik over teamets fremskridt over tid.
Scrum ikke lรฆngere beder om et tilsagn fra teams. I stedet handler det om sprintmรฅlene og prognoserne. Kanban er afhรฆngig af tidsboksning og prognoser.
Det lรฆgger vรฆgt pรฅ planlรฆgning og sรฅ estimering spiller en meget vigtig rolle i Scrum Kanban har ingen obligatoriske krav til estimering.
Hver individet har sin rolle og ansvar. Ingen sรฆt roller sรฅ fleksibilitet med hensyn til individuelt ansvar.
Gentagelserne/Sprints er faste i varighed. Denne varighed varierer fra 2 uger til 1 mรฅned. Kanban er ikke baseret pรฅ varighed. Denne ting mรฅles med hensyn til cyklustider.
Holdene er forpligtet til at forpligte sig en bestemt mรฆngde arbejde. Engagement er ikke nรธdvendigt det er valgfrit for hold.
I denne metode tvรฆrgรฅende teams er vigtige, da de kan hรฅndtere enhver forstyrrelse, der kan forรฅrsage en flaskehals i softwareudviklingen. Under specialiseret team er vigtigt.
Det er ikke muligt at tilfรธje varer til lรธbende iterationer. Ny elementer kan nemt tilfรธjes hvis den ekstra kapacitet er tilgรฆngelig.
Et sprintefterslรฆb ejes kun af en enkelt hold. Flere holds kan dele Kanban bord.
Leverancer er bestemt af spurter, som et sรฆt arbejde skal vรฆre afsluttet og klar til gennemgang. Produkter og processer er leveret lรธbende pรฅ et nรธdvendigt grundlag. Sรฅ test- og gennemgangsprocessen fortsรฆtter samtidigt.
Scrum software udviklingsmetode fokuserer pรฅ efterslรฆbet. Kanban metode helt fokuserer pรฅ proces dashboard.
Hver teammedlem har en bestemt rolle i Scrum master bestemmer tidslinjer, produktejer sรฆtter mรฅl og mรฅl, og teammedlemmer udfรธrer udviklingsarbejdet. Der er ingen foruddefinerede roller for et team. Der kan dog stadig vรฆre en projektleder; teamet opfordres til at samarbejde og arbejder sammen.
Bedste til projekter med skiftende prioriteter. Ideel til hold med stabile prioriteter som nรฆppe รฆndrer sig over tid.
Mรฅler produktionen ved hjรฆlp af hastighed gennem spurter. Mรฅler produktionen vha cyklustid eller den nรธjagtige tid, det tager at fuldfรธre et helt stykke af et projekt.
Scrum krรฆver en fuldstรฆndig skift fra den traditionelle model til Agile Scrum-modellen, der ville blive implementeret i projektet. Kanban tillader ikke drastiske รฆndringer i projektet.
Det er en ideel metode til projekter med vidt forskellige prioriteter. Bedste velegnet til hold med stabile prioriteter.
I Scrum er hele team fokuserer pรฅ at samarbejde og fuldfรธre opgaven at levere kvalitetsudviklingsarbejde. Teams arbejder for at nรฅ mรฅl og reducere tiden til at fuldfรธre hele processen. Reduktion i tidscyklussen er sรฅledes den stรธrste indikator for succes her.
Scrum vรฆgt pรฅ sine tidsplaner; nye elementer kan ikke tilfรธjes til igangvรฆrende iterationer. Kanban er mere iterativ af natur som den har ikke specifikke tidsrammer. Sรฅ nye varer kan lรธbende tilfรธjes, nรฅr der er yderligere kapacitet til rรฅdighed.
Det samlede arbejde udfรธres i partier/Sprints. Hele projektet udfรธres pรฅ bevรฆgelse af enkelttrรฅdet arbejdsemne strรธmme.
Scrum master fungerer som en problemlรธser. Kanban opfordrer hvert teammedlem er en leder og dele ansvaret mellem dem alle.
Scrum foreskriver time-boxede iterationer. Kanban fokuserer pรฅ planlรฆgger en anden varighed til individuel iteration.
Scrum hjรฆlper virksomheder med at spare tid og penge. Kanban metode fokus pรฅ lรธbende forbedringer, produktivitet og effektivitet.
opnรฅ stabil og konsekvent kommunikation prรฆstation pรฅ alle niveauer. Teammedlemmer er mere tilbรธjelige til at nรฅ deres mรฅl meget lettere pรฅ grund af den visuelle karakter af Kanban-tavler.
Projekt er kodet og testet under spurten gennemgรฅ Teammedlemmer er mere tilbรธjelige til at nรฅ deres mรฅl meget lettere pรฅ grund af den visuelle karakter af Kanban-tavler.
Det er nemmere at tilpasse sig de konstante รฆndringer pรฅ grund af de korte spurter og regelmรฆssig feedback. Det er designet til et regelmรฆssigt, stabilt output, kan store รฆndringer i kundernes efterspรธrgsel fรฅ Kanban til at mislykkes.
De samlede omkostninger ved projektet er minimale, hvilket kan fรธre til hurtigere og billigere resultat. Hvis en opgave ikke er korrekt estimeret, skal den samlede projektomkostninger vil aldrig vรฆre nรธjagtige. I sรฅdanne tilfรฆlde kan opgaven fordeles over flere spurter.
Denne metode krรฆver erfarne teammedlemmer kun. Sรฅ hvis teamet bestรฅr af folk, der ikke er eksperter, kan projektet ikke afsluttes i tide. Ingen specifikke tidsrammer er allokeret med hver fase, sรฅ teammedlemmer aldrig fรฅr en idรฉ om, hvor meget tid de kan tage i hver fase.
I denne Agile Scrum-metode er det nemmere at levere et kvalitetsprodukt pรฅ et aftalt tidspunkt. Den er designet til en regelmรฆssigt, stabilt output, store รฆndringer i kundernes efterspรธrgsel kan fรฅ Kanban til at falde.
projektplan vil aldrig forstyrre ogsรฅ selvom et teammedlem forlader holdet. Hvis nogen af โ€‹โ€‹teammedlemmerne forlader under udviklingen, kan det skade projektudviklingen.
Daglige mรธder nogle gange frustrere teammedlemmer. Forรฆldet Kanban-tavle kan fรธre til problemer i udviklingsprocessen.
Store projekter kan nemt opdeles ind i let overskuelige spurter.

Resumรฉ

  • Kanban definition: Kanban er defineret som en agil udviklingsmetodologi til at udvikle software, biler, varer, medicin, sko eller ethvert andet produktionsarbejde.
  • Kanban bruger Kanban-tavlen til at visualisere arbejdet. Den bruger kolonner som stadier (to-do, dev, test osv.) og kort som et arbejdsemne.
  • Kanban-metoden understรธtter den fysiske og digitale tavle til visualisering.
  • Kanban er et pull-baseret system, og kort trรฆkkes fra den forrige fase til de nuvรฆrende stadier af teammedlemmer.
  • Kanban-metoden bruger CFD-diagrammet til at forstรฅ teamets gennemlรธbstid og cyklustid. Dette diagram hjรฆlper holdene med at rette klรธften mellem disse to tidspunkter og forbedre effektiviteten.
  • Kanban udviklingsmetodologi, WIP begrรฆnser antallet af opgaver/kort, som kan arbejdes med af et teammedlem eller hele pรฅ รฉn gang.
  • WIP begrรฆnser skifter fokus pรฅ at fรฅ tingene gjort, da en person fokuserer pรฅ en enkelt opgave ad gangen.

Opsummer dette indlรฆg med: