En kort introduksjon til Scrum

Et utviklingsprosjekt kan ha en varighet på flere år, og bestå av flere hundre konsulenter. Når man blir satt på sitt aller første prosjekt etter skolebenken, er det derfor fort gjort å bli overveldet av dets kompleksitet og omfang. Heldigvis finnes det rammeverk som er utviklet for å hjelpe til med gjennomføringen av slike prosjekter.  Øystein Wethe Hanssen fra Visma Consulting gir deg her en kort introduksjon til et av disse; Scrum.

Hva går Scrum ut på?

Scrum er et smidig prosessrammeverk utviklet for å støtte kompleks produktutvikling. Det er basert på empirisme, altså at kunnskap kommer fra erfaring og beslutninger som baseres på det som er kjent. Det er det ledende rammeverket for programvareutvikling, men det viser seg også å være effektivt i andre sammenhenger.

Scrum består av tre fundamentale roller, som til sammen utgjør et Scrum-team:

  1. Produkteieren, eller kunden, er eieren av produktet. Prosjekteierens oppgave er å bestemme hva som skal bli levert til enhver tid.
  2. Utviklingsteamet er de som utvikler det faktiske produktet. Det er disse som skal utvikle og demonstrere det produkteieren har bestemt at de skal bygge. Utviklignsteamets størrelse er normalt sett på mellom 5 og 9 personer, slik at de er få nok for å være fleksible, men mange nok til å kunne levere et signifikant stykke arbeid.
  3. Scrum-masteren skal forsikre at denne prosessen skal foregå så smidig som mulig, ved å for eksempel beskytte utviklingsteamet fra distraksjoner. Det er Scrum-masterens oppgave å forsikre at Scrum-teamet etterlever Scrum-teorien.

Scrum-teamet er selvorganiserende og tverrfunksjonelt. Det betyr at teamet selv velger hvordan de best kan gjøre sin jobb, og at teamet har den kompetansen som skal til for å gjennomføre arbeidet. Dette for å optimalisere fleksibilitet, kreativitet og produktivitet innad i teamet.

Gjennomføring

Scrum er delt opp i delleveransener, eller såkalte «sprinter», som har en varighet på én måned eller kortere. Sprintene sørger for at produktet leveres på en iterativ og inkrementell måte, som betyr at det ved slutten av hver sprint leveres et «ferdig» produkt, som dermed maksimaliserer feedback og potensiell produktverdi.

En sprint består av et Sprintplanleggingsmøte, daglige Scrum-møter, selve utviklingsarbeidet,  en Sprint review og til slutt en Sprint retrospective.

  • Sprintplanleggingsmøtet er det første som skjer i en sprint. Her fastsettes hva som skal bli levert i sprinten, og hvilket arbeid som er nødvendig for å gjennomføre dette. Dette arbeidet brytes så opp i små oppgaver (gjerne på én dag eller mindre) av utviklingsteamet, og alle disse oppgavene utgjør til sammen «Sprintbacklogen». Gjennomføring av disse oppgavene selvorganiseres av utviklingsteamet. Det blir ofte brukt en tavle eller lignende for å se og endre status («to do», «in progress», «done») på oppgavene, gjerne med et medfølgende «burndown chart», som gir et øyeblikksbilde av gjenstående arbeid.
  • Det daglige Scrum-møtet er et 15 minutters daglig møte hvor hvert teammedlem svarer på tre spørsmål; hva har du oppnådd siden forrige møte, hva skal du gjøre frem til neste møte, og er det noen hindringer du kan se? Dette forbedrer kommunikasjon og utviklingsteamets samlede kunnskap og oversikt, stimulerer til raske beslutninger, og fjerner eventuelle hindringer.
  • Sprint review holdes på slutten av sprinten. Her demonstrerer utviklingsteamet arbeidet som ble ferdig i sprinten til produktets interessenter, diskuterer hva som gikk bra, og eventuelt hvilke problemer de støtte på underveis. Produkteier identifiserer hva som ble og hva som ikke ble ferdig, og hele gruppa samarbeider om hva som skal gjøres i neste omgang.
  • Sprint retrospective er et tilbakeblikk på den avsluttede sprinten, hvor Scrum-teamet inspiserer siste sprintens forløp, identifiserer de viktigste positive og negative erfaringene og lager en plan for å implementere forbedringene. Deretter starter man på nytt med sprintplanleggingen til neste sprint.

Scrum Methodology

Hvorfor Scrum?

Scrum gjør det mulig å fokusere på små, konkrete oppgaver, mens man hele tiden har det «store bildet» klart i sikte. På denne måten hjelper Scrum til å skape akkurat nok struktur til at teamet kan fokusere sin innovasjon på å løse hva som ellers ville syntes som en uoverkommelig oppgave. Med et tverrfunksjonelt og selvorganiserende team, har teamet selv mulighet til å utføre alle oppgavene, og vil til enhver tid kunne organisere seg slik at det blir utført på den mest effektive og beste måte. Ved å i tillegg opprettholde en kontinuerlig forbedringsprosess, sørger man for en kontinuerlig økning av teamets effektivitet og verdiskapning, og igjen produktkvaliteten.

Hva som er blitt utført, hva som utføres, og hva som skal utføres, er informasjon som til enhver tid er synlig for alle. Dette virker informativt for produktets interessenter, samtidig som det vil ha en motiverende effekt for utviklerne. I løpet av et prosjekt er det dog normalt at kunden kan ombestemme seg, eller at det dukker opp uventede utfordringer. Den empiriske, inkrementelle og iterative tilnærmingen til Scrum aksepterer dette, og fokuserer heller på å maksimere teamets evne til å reagere og levere raskt.

Scrum er enkelt å forstå, men svært vanskelig å mestre. Det vil kreve innsats, og man må være åpen for å  ekperimentere og utforske. Men når man først får tak i helheten og begynner å mestre Scrum, har man et utrolig kraftfullt sett av prinsipper og praksis, som vil gjøre gjennomførelsen av prosjekter til en drøm – forhåpentligvis.

Skrevet av Øystein Wethe Hanssen, nyutdannet sivilingeniør fra NTNU og deltaker i Nytt Krutt (Visma Consulting)

Hi! My name is Maren Helle and I am one of the Management Trainees in Visma 2013/2014. I hold a MSc in Industrial Design from NTNU, NUS (Singapore) and UCSD (US). I love to be challenged and see this year as a great opportunity to expand my knowledge into new fields
Kontakt Maren: