Du er bekendt med Scrum, ikke? Jeg gætter ja, i betragtning af at Scrum Alliance har over 400.000 medlemmer, og af dem bruger de fleste med succes det i deres organisationer.
Men det er ikke den eneste måde at opbygge software på en smidig måde - seriøst! Har du hørt om Kanban?
For lidt baggrundsoplysninger blev det oprindeligt anvendt til lean-fremstilling som en måde at visualisere input og output på arbejde, da det løb gennem en fabrik. Denne visualisering blev præsenteret på et bord, der er kendt som en - vent på det - Kanban. For nylig og mere relevant for dig er det blevet vedtaget som en metode til styring af softwareudvikling.
Først skitseret af neurolog David J. Anderson, er det en måde at organisere softwareudvikling og planlægning, der giver dig mulighed for at afdække procesproblemer og konsekvent levere værdifulde forbedringer i dit produkt - som jeg ved, det lyder ideelt. Enkelt sagt, på ethvert tidspunkt, kan du se, hvor arbejde (repræsenteret ved kort) er i færd med at udvikle sig.
Hvordan det virker
Det grundlæggende Kanban-kort bruger seks kolonner, der viser, hvor hvert stykke arbejde er i produktudviklingscyklussen. En grov prøve af, hvordan det ser ud, er nedenfor.
Se dette Kanban-bordeksempel på Trello.
Kolonne 1: Backlog
Kolonnen Backlog skal indeholde en prioriteret liste over ideer, bugs eller forretningsbehov. Kortet behøver ikke have et væld af detaljer endnu, men det skal have tilstrækkelig information til, at dine teammedlemmer forstår, hvorfor det er vigtigt.
Kolonne 2: Planlægning
I denne kolonne udfylder en produktchef en specifikation for funktionen ved at møde forretningsinteressenter, ingeniører og designere. Når den er klar, flytter han eller hun den til kolonnen "Klar til teknik".
Kolonne 3: Klar til teknik
På dette tidspunkt skal alle kort have detaljerede specifikationer. Selvom du muligvis stadig har spørgsmål om tekniske detaljer, skal forretningskravene være klare.
Kolonne 4: I gang
Du kan når som helst flytte et kort til “I gang”. Dette selvdrevne ”pull” -system bygger en kultur for personlig ansvarlighed og nysgerrighed.
Kolonne 5: Test
Når du er færdig med at arbejde på kortet, skal du flytte det til "Testning", hvor en anden ingeniør (eller nogen på QA-teamet) henter det.
Kolonne 6: Implementeret
En anden definerende funktion er, at arbejde kontinuerligt skal leveres til et iscenesættelses- eller produktionsmiljø. Denne kolonne giver alle på teamet mulighed for at se, hvad der er blevet frigivet for nylig.
Fordelene og afvejen
Når du vælger mellem Kanban og en mere almindelig metode som Scrum eller vandfald, skal du huske disse fordele og udfordringer:
Fordel: Forbedrer samarbejdet
I nogle udviklingshold, jeg har arbejdet med, var ingeniører specialister. Hvert hold ville have et par frontendingeniører og backendingeniører. Dette betød, at arbejdet ofte blev blokeret, fordi en ingeniør havde travlt med noget andet.
Kanban på den anden side begrænser det igangværende arbejde og afskrækker blokeringer. Hvert teammedlem kan kun arbejde på et emne ad gangen, og enhver, der ikke har travlt, kan trække arbejde fra toppen af kolonnen “Klar til teknik”. Dette tilskynder ingeniørgeneralister og samarbejde mellem teammedlemmer.
Øg fordelen: Lad ikke tingene gå, før de er klar
Kanban fungerer kun, når du venter på at flytte kortene til den næste kolonne, indtil de er helt færdige. (Bonus: Dette minimerer mangler i høj grad.)
Udfordring: fraråder tid til at reflektere
Som standard er der ingen tidsboksede sprints med klare mål, datomål og udgivelsescykler. Tænk i stedet på hvert kort som et uafhængigt stykke arbejde, der kan afsluttes og frigives til enhver tid.
Med denne kontinuerlige strøm af arbejde er der ingen "Vent til næste sprint" -mulighed. Du skal kontinuerligt kontrollere brættet, trække det næste emne og flytte færdige poster nedstrøms. Medmindre du bygger tid til retrospektiver og standup, kan det være svært for teammedlemmer at følge med, hvordan de har det.
Kom omkring det: Lån hvad der fungerer fra Scrum
Jeg har brugt daglige standups og retrospektiver med Kanban og fundet, at de tilføjer værdi. Hvis der er regelmæssige møder eller mønstre, der fungerer for dit team, skal du ikke ændre dem til at overholde dogmatisk til Kanban. Budget tid til at tale om prioriteterne og hvordan de har ændret sig, så alle ved, hvad der sker i produktudviklingscyklussen.
Fordel: Øger gennemsigtighed
Hver udvikler skal tage initiativ til at flytte et kort til kolonnen "Pågår". Hvilket betyder, at holdets manager til enhver tid kan se på, hvem der har travlt, hvem der ikke har travlt, og hvor længe et stykke arbejde har været i gang.
Når produktionen bremser eller stopper, giver Kanban dig mulighed for at se nøjagtigt hvorfor. Uanset om det er fordi forretningsteamet ikke har prioriteret poster i efterslæb, produktgruppen ikke er færdig med spec, dev-teamet bevæger sig langsommere end forventet, eller QA-teamet har ikke været i stand til at teste noget; flaskehalse er åbenlyse.
Øg fordelene: Tillad, at fremskridt er offentligt
En af fordelene er, at Kanban er meget visuel. Selv ikke-tekniske teammedlemmer kan se på et Kanban-bord og fortælle, hvor arbejder er i gang. Brug dette til din fordel, og lad holdets præstationer skinne ved at placere dit bord på et offentligt sted.
Udfordring: Tillader ikke langvarig planlægning
At bekymre sig om tidsfrister og estimater er ikke den mest produktive brug af din tid, så du kan måske forstå, at Kanban handler mere om den daglige produktion. Når det er sagt, er det alene ikke et system til opbygning af en langsigtet plan. Dette kan få dig til at arbejde på projekter sporadisk snarere end at fokusere på en ting i lang tid. Det er svært at tilbringe en dag på projekt A og derefter en dag på projekt B og derefter skifte tilbage til projekt A.
Kom omkring det: Brug det, når dine prioriteter sandsynligvis vil ændres
Hver kolonne i dit bord er uafhængig af de andre, så teammedlemmer kan flytte rundt på tingene når som helst. Dette kan irritere udviklere i en Scrum-indstilling (hvor estimater for sprinten er foretaget på forhånd), men Kanban trives i denne form for hurtigt skiftende miljø.
Alle ønsker at være mere produktive, men det kan være svært at prøve noget nyt, hvis du ikke engang er sikker på, hvor du skal starte. Jeg har fundet Kanban være nyttig, og håber, at du også finder det nyttigt til din personlige arbejdsgang (eller endda for hele dit team!).
Tweet mig, hvis du beslutter at give det et skud!