Gå til indhold

Scrum eller Kanban

Scrum og Kanban sammenlignet: tidsbokse med sprints over for kontinuerligt flow, roller, WIP-grænser, målinger, og hvor East Agile Trackers iterationsbaserede board ligger mellem dem.

Scrum og Kanban er de to agile metoder, teams oftest sammenligner. Begge gør arbejdet synligt, og begge sigter mod at levere i små stykker. Forskellen ligger i, hvordan arbejdet får sit tempo: Scrum planlægger i faste tidsbokse, Kanban trækker arbejde ind løbende og begrænser, hvor meget der er i gang på én gang.

Denne side sammenligner de to. For hele familien, inklusive XP og Lean, se Hvad er agil udvikling?.

Scrum inddeler arbejdet i sprints — faste tidsbokse, som regel på en til fire uger. Hver sprint begynder med sprintplanlægning, hvor teamet vælger det arbejde, det forventer at blive færdigt med, og slutter med en gennemgang af det, der er bygget, og en retrospektiv om, hvordan teamet har arbejdet.

Scrum har tre navngivne roller:

  • Product Owner — ejer produktbackloggen og dens rækkefølge.
  • Scrum Master — coacher teamet i processen og fjerner forhindringer.
  • Developers — bygger inkrementet.

Det vigtigste mål er velocity: hvor meget arbejde teamet færdiggør pr. sprint, hvilket danner grundlag for næste sprints plan. Se Hvad er velocity?.

Kanban tager udgangspunkt i den arbejdsgang, teamet allerede har. Arbejdsemner bevæger sig hen over et board med kolonner, der repræsenterer trin (for eksempel To do → In progress → Review → Done). Tre idéer bærer metoden:

  • Visualisér arbejdsgangen — hvert emne og hvert trin står på boardet.
  • Begræns igangværende arbejde (WIP) — hver kolonne har et loft; et nyt emne kommer først ind, når et andet forlader kolonnen.
  • Styr flowet — teamet måler, hvor lang tid emner tager (cyklustid, gennemløbstid), og fjerner flaskehalsene.

Kanban har ingen tidsbokse og foreskriver ingen roller. Der planlægges, når køen skal fyldes op.

ScrumKanban
RytmeFaste sprints (1–4 uger)Kontinuerligt flow
ForpligtelseArbejde planlagt til sprintenIngen samlet forpligtelse; træk ind, når der er kapacitet
RollerProduct Owner, Scrum Master, DevelopersIngen foreskrevne
Ændringer midt i cyklussenFrarådes inden for en sprintTilladt når som helst
Begrænsning af arbejdeSprintens kapacitetWIP-grænse pr. kolonne
Vigtigste målingerVelocity, burndownCyklustid, gennemløbstid, gennemstrømning
BoardNulstilles hver sprintVedvarende

Ingen af metoderne er generelt bedre. Scrum passer til teams, der vil have en fast planlægningsrytme og en prognose bygget på tidligere sprints, for eksempel produktteams, der leverer features efter en tidsplan. Kanban passer til arbejde, der kommer uforudsigeligt ind og skal håndteres, efterhånden som det kommer, for eksempel support, drift eller vedligeholdelse.

Mange teams blander de to (“Scrumban”): de bevarer en planlægningsrytme og holder samtidig øje med, hvor meget der er i gang.

East Agile Tracker er iterationsbaseret, hvilket placerer det tættere på Scrum og eXtreme Programming end på Kanban. Det bruger egne betegnelser for nogle af begreberne ovenfor:

  • Sprints hedder iterationer. Hvert projekt angiver en iterationslængde på 1–4 uger. Iterationer oprettes automatisk; der er ingen sprint at åbne eller lukke. Se Iterationer.
  • Backloggen er én ordnet liste. Produktejeren holder den i streng prioritetsrækkefølge, og Backlog projicerer de kommende iterationer ud fra velocity. Se Brugerhistorier og iterationsplanlægning.
  • Velocity bestemmer planens størrelse. Med auto-plan iterations slået til fyldes den nuværende iteration op til din velocity og ikke længere. Se Planlægning af en iteration.
  • Hver story har sin egen tilstand. En story bevæger sig gennem Unstarted → Started → Finished → Delivered → Accepted, vist på kortet, i stedet for gennem boardkolonner. Se tilstandsmaskinen.

Der er ingen WIP-grænser og ingen flowtilstand uden iterationer. De Kanban-idéer, der går igen, er synlighed (hver story og dens tilstand står på ét board) og flowmålinger: siden Metrics viser velocity-tendensen, burndown og de stories, der er overført mellem iterationer.