Overordnet idé
Derfor mener vi at Scrum er en fordelagtig metode
Scrum er en iterativ softwareudviklings- og projektledelsesmodel som sikrer god kommunikation og tæt samarbejde fra start til slut i et it-projekt.
Scrum giver ligeledes stor forudsigelighed i projektet fordi der på et tidligt tidspunkt skabes overblik over hele projektet samtidigt med, at det opdeles i små udviklingsfaser på to til fire uger. Disse såkaldte sprints sikrer løbende leverancer og bidrager således til et frugtbart softwareudviklingsmiljø hvor brugernes behov hele tiden sættes over for systemet, som udvikles gradvist.
Scrumprocessen
Scrum indebærer udvikling i loops indtil produktet er færdigt
Det første der sker når et projekt går i gang, er fordeling af de forskellige roller i Scrum Teamet. Rollerne omfatter en ScrumMaster, en Product Owner, et Team, kunden og brugerne. Scrum Masteren er en form for projektleder som understøtter processerne i projektet og sørger for at fjerne forhindringer for Teamets opgaveløsning. Product Owneren repræsenterer kunden og interessenterne i projektet, og han eller hun udformer og prioriterer Product Backloggen. Teamet er selvorganiserende og består af udviklere som har ansvar for at levere produktet.
Efter rollefordelingen udformer og prioriterer Product Owneren en Product Backlog ud fra kundens behov. Det er en udtømmende liste med alle de elementer der skal udvikles - det vil sige alle de behov som det endelige produkt skal kunne imødekomme. Product Owneren videregiver den prioriterede Product Backlog til Teamet.
Teamet afholder sammen med Scrum Masteren et Sprint Planning møde med det formål at:
- Udvælge hvilket arbejde der skal laves.
- Udforme en Sprint Backlog som i detaljer beskriver hvor lang tid det vil tage at udføre det udvalgte arbejde for hele Teamet. Hver opgave i Sprint Backloggen tager mellem fire og 16 timer at udføre.
- Identificere og kommunikere hvor meget af arbejdet der forventeligt vil blive udført i løbet af det indeværende sprint.
I løbet af hvert sprint bliver der holdt daglige Scrummøder af et kvarters varighed hvor Scrum Masteren og Teamet taler om hvordan det går. Hvert Scrum Teammedlem skal således besvare tre spørgsmål:
- Hvad har du lavet siden i går?
- Hvad planlægger du at lave i dag?
- Har du nogle problemer, som forhindrer dig i at nå dine mål?
Hvis der forekommer forhindringer, er det som nævnt Scrum Masterens ansvar at fjerne disse, således at Scrum Teamet kan løse deres opgaver.
Hvert sprint ender ud i et potentielt brugbart stykke software, og der afholdes et Sprint Review møde mellem Scrum Masteren, Product Owneren og Teamet. De foretager review af det udførte og ikke-udførte arbejde, og det udførte arbejde (demoen) præsenteres for interessenterne. Ideelt set har Product Owneren et brugerteam under sig, som kan give feedback på brugen af systemet, således at det sikres, at den endelige løsning matcher brugernes specifikke behov. Det er fordelagtigt fordi det kan være svært for Product Owneren at have overblik over alle de specifikke behov, der forekommer.
Eventuelle rettelser der skal foretages i det udførte arbejde, kan alt afhængig af omfang enten blive udført sammen med de nye opgaver i den efterfølgende sprint eller i en sprint for sig.
Ud over Sprint Reviewet afholdes et såkaldt Sprint Retrospective mellem Scrum Masteren og Teamet og eventuelt Product Owneren. Her reflekterer alle medlemmer af Teamet over det overståede sprint, og der bliver foretaget procesforbedringer. De to overordnede spørgsmål som stilles til dette Sprint Retrospective er:
- Hvad gik godt i løbet af sprintet?
- Hvad kan gøres bedre i det næste sprint?
Efter Sprint Retrospectivet er der grundlag for at holde et nyt Sprint Planning møde og udforme den Sprint Backlog som lægger til grund for det næste sprint. Processen gennemføres således forfra, og det bliver den ved med indtil alle opgaverne er løst og produktet er leveret til kunden.
Forudsigelighed
Ingen negative overraskelser med Scrum som redskab
Vi leverer hvad vi lover til den aftalte tid og med en høj kvalitet. Scrum er forbundet med en høj grad af forudsigelighed fordi Product Backloggen giver overblik over alle elementer der skal udvikles, og fordi denne liste løbende bliver opdelt i sprints, som hver har en deadline. Med løbende små deadlines bliver det lettere at nå den overordnede deadline og dermed levere systemet til tiden.
Failfast er et princip som vi anvender i forbindelse med udviklingsmodellen Scrum. Det bagvedliggende rationale er at man ved at identificere fejl på et tidligt stadie undgår at komme til at arbejde videre på noget, der ikke fungerer. Vi forhindrer derved ubehagelige overraskelser på et sent tidspunkt i projektet.
Der er altid usikkerhedselementer i et it-projekt, og der vil uundgåeligt ske fejl. Når vi som det første i et projekt tager fat i de mest komplekse opgaver som er forbundet med den største usikkerhed, kan vi afprøve nogle forskellige løsningsmodeller og begå fejl, som ikke har store konsekvenser for projektet, fordi de opstår på et tidligt tidspunkt i udviklingsprocessen.
Når vi har fundet ud af hvad, der fungerer, og hvad der ikke fungerer, kan vi arbejde videre i projektet på et sikkert fundament og undgå at begå flere fejl, som har grundlæggende betydning for den endelige softwareløsning.
Resultat af Scrum
Scrum resulterer i brugervenlige og innovative it-løsninger
Den tætte kommunikation mellem kunden og os og vores løbende tilpasning af systemet til kundens behov sikrer at vi ender op med et meget brugervenligt system, som på bedst mulig vis matcher kundens behov. Den løbende sparring i projekterne medfører ofte at nye ideer opstår og gennem en udviklingsproces bliver til innovative softwareløsninger.