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.
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.
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.
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:
Ett scrum-team består av 3–9 personer som fördelar sig på tre olika roller:
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.
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-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.
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.
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 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.
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.
MVP är en förkortning för Minimum Viable Product. Det är ett viktigt koncept inom mjukvaruutveckling.
Hur mäter man och optimerar man CX – Customer Experience?
Fast pris känns tryggt men det finns ingen garanti för att man blir nöjd. Med en “agil budget” ligger garantin istället i att slutresultatet kommer att bli bra.
Med ett business case lägger du grunden för din kommande digitala lösning.