Rugbyspelare i scrumformation.

Vad är scrum?

jan 7, 2022
Av Anders Widell

Scrum är en agil metod som främst används vid utveckling och underhåll av komplexa system med många okända variabler. Poängen är att kunna hantera scenarion där kravställningen behöver förändras under projektets gång. Förändringshantering är en viktig del av scrum.

Scrum uppstod som ett alternativ till den konventionella vattenfallsmodellen. Den är en metod med rötter i bygg- och tillverkningsindustrin, där det ofta är mycket dyrt att göra förändringar sent i processen. Ett vattenfallsprojekt genomförs stegvis, där varje steg avslutas innan nästa påbörjas. Vattenfallsprocessen ses som ett flöde, därav namnet. 

Namnet scrum är hämtat från rugbyn där det är ett spelmoment som används för att återstarta spelet efter ett avbrott. Spelarna i bägge lagen grupperar sig i formationer mot varandra för att vinna bollen när den sätts i spel.

Scrum brukar beskrivas som ett ramverk för att hantera alla typer av komplexa och föränderliga problem. Men det är inom IT och mjukvaruutveckling metoden det fått sin största utbredning.

Varför vattenfallsmodellen fungerar sämre i IT-projekt

När man bygger ett hus är förutsättningarna kända tidigt. Redan innan det första spadtaget tas vet man vad som behöver göras, vilka resurser som krävs, hur lång tid det kommer att ta och vad det kommer att kosta. Det finns en tydlighet runt projektet och det är lätt att förstå processen. Det går att sätta ett fast pris på färdiga huset och den som köper det vet vad som kommer att levereras. Under sådana premisser fungerar vattenfallsmodellen bra.

Ett av de stora problemen med att utveckla mer komplexa och svårförutsägbara system på det här sättet är att man skjuter på kvalitetssäkring och testning till slutet. Om det skulle visa sig att man först då upptäcker allvarliga problem med produkten eller att kunden inte tycker att den motsvarar det som beställts. Då kan det bli väldigt svårt och kostsamt att åtgärda, särskilt om det är saker som påverkar helheten. Förändringar gör att flera steg i vattenfallsprocessen måste gås igenom från början igen. Detta kan leda till kraftiga förseningar och att kostnaderna skjuter i höjden.

Rugbyboll på linje på gräs

 

Scrum i ett nötskal

  1. Produktägaren beställer funktioner eller lösningar i en produkt-backlog.
  2. Utvecklingsteamet förvandlar ett prioriterat urval av arbetet till en delleverans (ett inkrement av värde) under en tidsbegränsad sprint.
  3. Utvecklingsteamet och dess intressenter inspekterar resultatet och lägger till de förändringar som ska göras under nästa sprint.
  4. Cykeln upprepas

Scrum gillar förändringar

Utgångspunkten i Scrum är att kravställningen (önskemålen om funktioner) kommer att förändras kontinuerligt under projektets gång. Metoden har förändringshantering i sin kärna och använder sig av en så kallad iterativ och inkrementell metod för att hantera osäkerhet och risker. Enkelt uttryckt innebär det att man stegvist och repetitivt stegar sig fram mot en färdig produkt. I vattenfallsmodellen läggs mycket tid och resurser initialt på att definiera slutresultatet och vägen dit. Scrum gör det möjlighet att utveckla detta under projektets gång.

    Rugbyspelare sätter bollen i spel

    Att stega sig fram mot slutresultatet

    I scrum sker således utvecklingen i iterationer (upprepade steg) där man börjar med den viktigaste och mest grundläggande funktionaliteten (dvs den som produktägaren prioriterar högst) och sedan bygger på med fler funktioner. Detta görs i så kallade ”sprintar” ‒ fasta leveranscykler på en till fyra veckor. 

    När en sprint är avslutad samlar man ihop det som gjorts till en delleverans (ett inkrementent) som testas och utvärderas av projektets intressenter. Testresultatet visar hur produkten kan förbättras och utvecklas vidare. Vilka förbättringar och vilken utveckling som ska göras i kommande sprint, planeras under den pågående, utifrån den prioritering som produktägaren gjort.

    Det finns flera fördelar med detta:

    • Man får snabbt upp en lösning med de mest grundläggande funktionerna och kan leverera värde till beställaren.
    • Funktionerna kan tidigt testas och förbättras utifrån testresultat och feedback. 
    • Det blir kortare och mer frekventa återkopplingsslingor. 
    • Varje iteration förbättrar och utvecklar lösningen med ny prioriterad funktionalitet så att den blir allt bättre. 
    • Varje iteration leder till en delleverans (ett inkrement) där produkten uppdateras och värdet på den stiger.

    Scrum-teamets roller

    Ett scrum-team består av 3–9 personer som fördelar sig på tre olika roller:

    Produktägare (product owner)

    Produktägaren sammanställer behov och önskemål om vad produkten ska omfatta och prioriterar dessa. Produktägaren är vanligtvis kunden och ofta också projektledare hos denne.

    Utvecklingsteam (scrum team)

    För att bygga och leverera den beställda funktionaliteten finns ett utvecklingsteam med flera personer som är ömsesidigt ansvariga för att sprintens mål uppfylls. Tillsammans har de de kompetenser som krävs och väljer själva hur de ska organisera sig för att utföra arbetet.

    Scrum master

    Scrum-mastern har ingen formell auktoritet utan är mer att betrakta som en coach. Huvuduppgiften är att facilitera teamet, det vill säga se till att de har allt de behöver och att inga hinder finns. Scrum-mastern ska också säkerställa att scrum- ramverket följs av teamet. Utvecklingsteamet är självorganiserande och självstyrande. 

    Komponenter inom scrum (artefakter)

    Backlog (product backlog)

    Backloggen är en prioriterad och estimerad lista över alla önskemål på funktioner eller förändringar som produktägaren i nuläget vill ha. Innehållet och dess prioritering skiftar som regel över tid och det är produktägaren som bestämmer över detta.

    Sprintbacklog

    Utvecklingsteamet kommer överens om vad som ska lyftas in från backlog in i en sprintbacklog som bör vara detaljerad, synlig och transparent för alla projektets intressenter. Den bedömningen görs utifrån prioritering och tillgänglig tid. Dessa uppgifter blir den kommande sprintens innehåll och målet är att de ska slutföras inom sprintens tidsram. I sprintbackloggen kan man följa de framsteg utvecklingsteamet gör och vilka problem de stöter på under sprintens gång. Den kan ses som en ögonblicksbild av läget. 

    Inkrement

    Inkrement kan sägas vara ett av flera steg mot en färdig produkt, en version av den. Tanken med scrum är att varje steg bygger på och utvecklar produkten. När sprinten slutförts så uppdateras produkten med det som gjorts i sprinten. På så sätt kan värde och affärsnytta levereras tidigt och sedan kontinuerligt i varje inkrement, istället för i slutet när allt är färdigbyggt. 

    För- och nackdelar med scrum

    Fördelar

    • Bättre kvalitet.
    • Tydlighet och struktur.
    • Fokus på att leverera snabb och löpande affärsnytta.
    • Stora projekt kan delas in i mer lätthanterliga sprintar.
    • Säkerställer att tid och pengar används på ett optimalt sätt.
    • Förändringshantering är en del av metoden.
    • Involverar kunden och ger teamet löpande återkoppling. Detta hjälper teamet att förstå behoven, anpassa produkten och åtgärda problem.
    • Ömsesidigt och delat ansvar bidrar till att alla i teamet känner mer motivation och ägarskap.

    Nackdelar

    • Hiearki av beslutstagare.
    • Kräver att kunden engagerar sig löpande.
    • Mycket hänger på att estimaten och det är en utmaning att sätta tillförlitliga estimat.
    • Kan leda till så kallad “scope creep”, det vill säga att projektet växer genom icke auktoriserade tillägg, saker man inte kommit överens om.
    • Kräver erfarenhet och engagemang hos teamets medlemmar för att fungera optimalt.
    • Projektets slutliga deadline har en risk att hamna i skymundan, när teamet fokuserar på att nå individuella deadlines och att slutföra sprintar. Detta kan skapa förseningar.
    • Svårt att applicera på stora team.
    • Fungerar ofta sämre i projekt som kräver tydlig plan och högre grad av förutsägbarhet.
    • Sårbart om en medlem lämnar teamet ellert blir sjuk under en pågående sprint.

    Avslutningsvis

    Det finns en anledning till att scrum är den populäraste och snabbast växande ramverket för systemutveckling. Den finns inga perfekta metoder, men applicerar man scrum rätt så kommer ovanstående fördelar överväga nackdelarna.

  • Author: Anders Widell – Marknadschef/Head of Marketing
    Kontaktperson
    Anders Widell
    Marknadschef