Hvad er Kanban i softwareudvikling?

Hvad er Kanban i softwareudvikling?

Kanban er en populær ramme, der bruges til at implementere agil og DevOps softwareudvikling. Det fokuserer primært på at skabe et kontinuerligt workflow og en løbende værdiforøgelse for kunden. Alle arbejdsemnerne i et projekt repræsenteres visuelt i frameworket ved hjælp af en Kanban-tavle. Det giver teammedlemmerne mulighed for at se status for hvert stykke arbejde til enhver tid.

Det giver teams mulighed for at planlægge mere frit, producere arbejde hurtigere, opretholde gennemsigtighed i hele udviklingsprocessen og have et klarere fokus. Kanban reducerer Work-In-Progress mellem softwareudviklingsprocesser ved at sikre, at upstream-processer skaber dele, så længe downstream-processer har brug for dem.

Målet er at sikre, at arbejdsemnerne hurtigt kommer videre til de næste trin, så forretningsværdien realiseres hurtigere. Derfor drager kunderne fordel af en udviklingspipeline, der leverer arbejde af høj værdi på en forudsigelig og effektiv måde. Denne artikel vil lære dig mere om Kanban-frameworket og dets fordele. Læs videre for at få mere at vide om emnet.

Hvad er fordelene?

Som nævnt i indledningen er det en af de mest populære softwareudviklingsmetoder, der anvendes af agile teams. Det giver mange fordele, når det gælder om at forbedre opgaveplanlægning og gennemløb for teams af alle størrelser. Til din information er følgende nogle af dem.

  • Fleksibilitet i planlægningen
  • Reduceret cyklustid
  • Færre flaskehalse
  • Illustration af arbejdsgange
  • Gør kontinuerlig levering mulig

1. Fleksibilitet i planlægningen

Et Kanban-team fokuserer normalt på igangværende arbejde. De kan vælge den næste opgave fra toppen af backloggen, når de er færdige med en. Da ændringer i de aktuelle arbejdsopgaver ikke påvirker teamet, kan produktejeren omarrangere backloggen med opgaver uden at forårsage forstyrrelser. Hvis produktejeren prioriterer de mest kritiske opgaver øverst i backloggen, kan udviklingsteamet være sikre på, at de bidrager med mest mulig værdi til forretningen.

2. Reduceret cyklustid

Cyklustid er den tid, det tager for en arbejdsenhed at gå fra startpunktet til afsendelsespunktet. Det betragtes som et nøgletal for Kanban-teams. Hvis teamet kan optimere cyklustiden, kan de med sikkerhed forudsige, hvornår arbejdet kan leveres. Mindre cyklustider er mulige, når teamet har overlappende færdigheder.

  • Hvis kun én person i teamet har en bestemt færdighed, kan det blive en flaskehals i arbejdet.
  • På den anden side, hvis teammedlemmerne kan dele deres færdigheder, kan de samarbejde og påtage sig heterogene opgaver, hvilket optimerer cyklustiden.
  • Det betyder også, at hvis der opstår en flaskehals i arbejdet, kan hele teamet sværme om den for at få gang i tingene igen.
  • For eksempel er test ikke begrænset til QA-ingeniører. Udviklere bidrager også.
  • I en Kanban-ramme er hele teamet ansvarligt for at sikre, at arbejdet går igennem processen uden hikke.

3. Færre flaskehalse

Som du ved, er multitasking ikke det rigtige at gøre, især ikke når det gælder teamwork. Det resulterer i reduceret effektivitet. Når der er flere igangværende arbejdsopgaver, kan kontekstskift forekomme hyppigt, hvilket gør det vanskeligt for teamet at fuldføre de tildelte opgaver. Det er derfor, Kanban bruger WIP-begrænsning som et af sine kerneprincipper.

  • Det vil hjælpe med at være opmærksom på at reducere de flaskehalse og backups, der kan opstå i processen på grund af mangel på personale, ekspertise eller fokus.
  • Når man for eksempel ser på et typisk softwareudviklingsteam, arbejder de i fire workflow-tilstande: To Do, In Progress, Code Review og Done. Normalt sætter de en WIP-grænse på 2, når de gennemgår koden.
  • At sætte en så lav grænse opmuntrer dem til at være særligt opmærksomme på problemer i review-status og til at gennemgå andres arbejde, før de hæver deres kodeanmeldelser. Det reducerer til gengæld den samlede cyklustid.

4. Illustration af arbejdsgang

Frameworket giver visuelle målinger som kontroldiagrammer og kumulative flowdiagrammer til at overvåge arbejdet, finde flaskehalse i processen og fjerne dem. Teamet kan sikre sig, at de er på rette vej ved at overvåge de data, der vises i diagrammerne. Cyklustiden for hvert problem vises på et kontrolkort sammen med teamets rullende gennemsnit.

  • Alle teams ønsker at forkorte den tid, det tager for et problem at gå gennem hele processen. At se den gennemsnitlige cyklustid falde i kontroldiagrammet indikerer succes.
  • Omvendt viser et kumulativt flowdiagram det samlede antal problemer i hver tilstand.
  • At se en stigning i problemer i en given tilstand gør det nemt for teamet at identificere flaskehalse.
  • Arbejde i mellemstadier, som “In Progress” eller “In Review”, er endnu ikke blevet sendt til kunderne, så en blokering her øger sandsynligheden for massive integrationskonflikter. Det kan løses med det samme, hvis de er opmærksomme på disse problemer.

5. Gør kontinuerlig levering mulig

Kontinuerlig levering, eller CD, er processen med regelmæssigt at levere arbejde til kunder. Koden bygges og testes automatisk trinvist i løbet af dagen ved hjælp af en proces, der kaldes kontinuerlig integration (CI). De arbejder sammen om at skabe en CI/CD-pipeline. Det er afgørende for udviklingsteams, især DevOps-teams, at kunne levere software hurtigere og samtidig opretholde en høj kvalitetsstandard.

Kanban og CD fungerer godt sammen, fordi de lægger vægt på just-in-time (og one-at-a-time) levering af værdi. Et teams produkt vil være mere konkurrencedygtigt, hvis det hurtigt kan bringe innovation på markedet. Og det er præcis, hvad Kanban-teams prioriterer: at strømline processen med at levere kundearbejde.

Så vi har diskuteret, hvad Kanban er, og nogle af de mange fordele ved at bruge det i softwareudvikling. Mens dens kerneprincipper er tidløse og kan anvendes i stort set alle brancher, har softwareudviklingsteams fundet dem særligt succesfulde. Når de har forstået de grundlæggende principper, kan de begynde at øve med få eller ingen omkostninger. Det har hjulpet mange organisationer med at øge effektiviteten i deres softwareudviklingsteams. Ved at skabe en kultur for samarbejde og kommunikation kan holdene desuden arbejde sammen om at identificere og løse problemer hurtigt.

Interessante links:

Kanban vs. Scrum: Hvad er forskellen?

Kanban-softwareudvikling

Skriv en kommentar