Vad är Scrum?

Scrum är en metod som används vid systemutveckling. Metoden uppfanns  under 1990-talet och används nu över hela världen. Det främsta användningsområdet är inom mjukvaruutveckling och kännetecknas av att man fokuserar på den produkt som ska utvecklas istället för hur man ska utveckla den. Man jobbar i små grupper med en stark samhörighet. Det går ut på att man fokuserar på mindre delmål istället för större mål vilket gör det lättare att se vad som behöver göras och hur man ska göra det. Idag används Scrum över hela världen och av miljontals människor. De två saker som definierar Scrum är Inspektion och anpassningsförmåga. Det betyder att Teamet inspekterar och anpassar sin produkt efter vad de har lärt sig. Detta stödjs av fem värden: Engagemang, Mod, Fokus, Öppenhet och Respekt.

Scrum ramverk för projekt

Engagemang:

Utvecklingsteamet leder sig själva och varje medlem är dedikerade till att slutföra arbetet de tillsammans har kommit överens om.

 

Mod:

Utvecklingsteamet jobbar som en enhet, de lyckas eller misslyckas tillsammans. De måste därmed lita på varandra.

 

Fokus:

Utvecklingsteamet fokuserar på en del i taget. Det är nämligen lättare att hålla sig fokuserad när det endast finns några få delmoment i taget att utföra.

 

Öppenhet:

Utvecklingsteamet får tid att diskutera vad som har gått bra och vad som måste bli bättre. De är öppna med varandra om både med- och motgångar.

 

Respekt:

Utvecklingsteamet består av folk med olika färdigheter och alla respekterar det. Ingen blir utpekad när man diskuterar vad som inte fungerar.

 

Historia:

Innan vi går djupare in på Scrum ska vi ta en tillbakablick i tiden och titta närmare på Scrums historia. Jeff Sutherland, John Scumniotales och Jeff McKenna sägs ha uppfunnit Scrum år 1993. De presenterade sedan Scrum under OOPSLA-konferensen 1995. Sedan började det växa. Scrum Alliance bildades som ett sätt att hålla ihop Scrumanvändarna. Scrum fortsatte växa och är nu spritt över hela världen. Ordet Scrum kommer från rugbyn och är det moment då bollen sätts i rörelse. Anledningen till att man valde detta namn är att Development Teamet är ett tvärfunktionellt team som samarbetar för att göra klart produkten på samma sätt som rugbyspelarna samarbetar för att föra bollen uppför planen.

 

 

Hur används Scrum?

Inom Scrum finns ett antal moment som man genomgår under produktutvecklingen. Dessa moment är olika delar av Scrum men då Scrum bara är ett ramverk är det ändå ganska fritt. Scrum används främst av mjukvaruutvecklare för det är där det har visat sig vara mest effektivt. Man fokuserar på kortare tidsperioder, s.k. sprintar. Man genomför delmål på vägen mot det stora målet. De finns tre olika roller som man använder sig av. Dessa är Scrum Master, Development Team och Product Owner. Mer om detta under ”Roller inom Scrum”

 

Varför använda sig av Scrum?

Anledningen till varför man vill använda sig av Scrum är de olika momenten inom ramverket. Dessa moment fungerar bra och har visat sig vara väldigt effektiva inom mjukvaruutveckling. Det är ett koncept som testats gång på gång och som har gett synnerligen goda resultat. Många stora företag som tex Google har redan implementerat Scrum. Detta visar på hur bra systemet egentligen är. Det erbjuder också ganska mycket frihet då det bara är ett ramverk. Man kan ändra på det för att göra det perfekt för just sitt företag. Det är därför Scrum har blivit så populärt och det är därför Scrum passar bra i nästan alla företag som på något sätt jobbar med mjukvaruutveckling.

 

Momenten inom Scrum:

Sprint planning:

Här går produktägaren, Scrum Master och Development Teamet igenom de önskemål som finns för sprinten. Därefter kollar Development Teamet igenom kraven och uppskattar hur lång tid det kommer ta. När det är klart tar de fram en Sprint Backlog som de sedan följer under sprinten.

 

Backlog refinement:

Backlog refinement är det moment då Development Teamet går igenom sin Backlog och kollar så att alla mål är tydliga och rätt prioriterade. Detta steg gör sedan sprinten mycket mer effektiv. Momentet var från början inte en del av Scrum men detta moment är nu med i Scrum Guiden.

 

Sprint:

En sprint är en tidsbestämd period och inom den ska man ha utvecklat en fungerande version av produkten. Sprinten får inte vara längre än en månad. I slutet på varje sprint utvärderar man den, ser efter vad man har gjort och inte har gjort. Detta är för att nästa sprint ska bli ännu bättre. Dessa utvärderingar kan också stoppa problem som uppkommit under sprinten innan de vuxit sig för stora. Under en sprint följer Development Teamet en s.k. Sprintbacklog. Det är en lista över de saker som de bedömer att de kan leverera inom ramen för en sprint. Denna lista visar vilka framsteg Development Teamet gör men också vilka problem som uppstår. När sprinten är klar så gör man en Increment. Det är den färdiga produkten efter att produkten har uppdaterats med det som gjordes under sprinten. Dessa sprintar har visat sig fungera eftersom det är lättare att se en kortare tidsperiod. Om man satte ut ett mål som skulle vara klart om tre år skulle det vara svårt att jobba mot. Om man istället har delmål som ska vara klara efter en sprint så är det mycket lättare att se vad som måste göras. En ny sprint startar så snart den gamla är klar.

 

Sprint Retrospective:

Som jag nämnde tidigare så utvärderar man sprinten i slutet på den. Dessa utvärderingar kallas för Sprint Retrospective. Här pratar man om vad som var bra och vad som var sämre med sprinten. Man kollar på arbetssättet och ser om man ska göra några förändringar. Man ser också på problem som uppkommit och hur man ska lösa dem om det inte redan har skett. Dessa utvärderingar är en av anledningarna till varför Scrum funkar så bra. Man löser alla problem innan de har hunnit bli stora håller där med produktiviteten hög. Dessutom kollar man på vad som gick dåligt med sprinten och ser till så att man inte gör samma sak igen. Därför blir nästa Sprint bättre än den förra. Då dessa utvärderingar sker så fort en sprint är klar så utvärderar man sig själva med jämna mellanrum. Det gör man inte lika ofta i företag som inte använder Scrum och man gör då samma misstag igen.

 

Sprint Review:

Här demonstrerar man funktionerna med den senaste Incrementen för produktägaren och andra inbjuda intressenter. Meningen med detta är att alla ska få en förståelse för hur projektet ligger till. Detta möte får ta max fyra timmar.

 

Daily Scrum:

Ett annat moment inom Scrum är Daily Scrum. Detta är ett kort möte som Utvecklingsteamet håller varje dag. De går de igenom vad de har gjort sedan det senaste mötet och vad de planerar att göra idag. De går också igenom om det finns några hinder. Teamet kan sedan planera det närmsta dygnet baserat på mötet. Under mötet frågar Scrum Master deltagarna: Vad gjorde du igår? Vad ska du göra idag? Finns det några problem som du kommer möta? Detta är för att alla ska få säga sitt och ingen ska bli bortglömd. Mötet får vara i max 15 minuter och för att ingen ska dra ut på tiden så måste alla stå upp under mötets längd.

 

Scrum artefakter:

Inom de flesta yrken använder man sig av olika dokument som hjälper till att hålla ordning på saker och ting. Scrum gör samma sak. De använder sig av dokument som kallas Product Backlog, Sprint Backlog, Increment och Burn Down chart.

 

Product Backlog:

Product Backlog är det dokument som beskriver vilka mål som ska uppnås med den färdiga produkten. Detta dokument tas fram av Product Owner och det är hans eller hennes jobb att se till så att dokument kan förstås av alla. Målen på Product Backlog ska vara entydiga och lättförståeliga så att ingen kan missuppfatta dem. Scrum Mastern hjälper Product Owner att hålla målen på listan tydliga.

 

Sprint Backlog:

Som jag sa tidigare så är Sprint Backlog en lista över de saker som Development Teamet bedömer att de kan leverera inom tidsramen för en sprint. Det kan t ex vara att i slutet på sprinten ska användare kunna handla i vår web shop. Listan är uppdelad så att vissa saker är viktigare än andra. Om Development Teamet inte hinner med allt så stryker de sakerna längst ner på listan.

 

Burn Down chart:

Detta är en bildlig visning av hur mycket arbete som är kvar till dess att projektet ska vara klart. Det har en Y-axel och en X-axel. Y-axel representerar jobbet som är kvar att göra och X-axeln representerar tiden tills projektet är över. Helst så ska den visa en nedåtgående linje då mängden arbete blir mindre desto närmare deadlinen man kommer. Detta är för att Development Teamet ska se hur mycket arbete som är kvar och hur lång tid de har på sig. Med en bild som denna blir det mer tydligt än om man bara såg ett datum. Det blir då lättare att se om man behöver jobba snabbare eller om man har en bra takt.

 

Increment:

I slutet av varje sprint ska en ny Increment vara färdig. En Increment är summan av alla Product Backlog mål som man har uppnått under sprinten. En Increment ska i princip vara en färdig produkt som går att leverera. Man tar sedan Incrementen och lägger den på den föregående Incrementen så att man får än bättre produkt. Man gör detta till dess att produkten är färdig.

 

Roller inom Scrum

Ovanstående moment är en av anledningarna till att så många väljer att använda sig av scrum. Dagliga möten och utvärderingar efter varje sprint har visat sig vara väldigt effektivt för utvecklingen av mjukvaruprodukter.  Inom Scrum har man också olika roller. Vi har Development Team, Scrum Master och Product Owner. Dessa tre roller är de som gör allt inom Scrum. Därför är det viktigt att känna till dessa roller och veta vad de gör innan man byter till Scrum.

 

Development Team:

Development Team är de som utvecklar själva produkten. De är de som tar målen i Product Backlog och gör dem till verklighet. De är de som levererar produkten i slutet på varje sprint och det är de som utvärderar sprinten. De flesta Development Team är mellan tre och nio personer för att det är den storleken som har visat sig vara mest effektiv. Vid den storleken så krävs inte för mycket koordination mellan medlemmarna men antalet interaktioner mellan dem är fortfarande högt. Detta gör att produktiviteten är hög inom teamet. En sak som är väldigt speciellt med Scrum är att Development Teamet har ganska mycket frihet. Product Backlog säger vad som ska uppnås men det är upp till Development Teamet att bestämma hur det ska uppnås. Det är också de som bestämmer hur mycket de hinner med per Sprint och vad de vill göra under Sprinten. De har egentligen bara en deadline då projektet ska vara klart och en lista över vad som är viktigt. Sedan bestämmer de hur mycket de hinner under varje Sprint.

 

Product Owner:

Product Owner har jobbet att maximera värdet på produkten som Development Teamet tar fram. Det är han eller hon som tar fram Product Backlog och det är hans eller hennes jobb att se till så att Development Teamet kan förstå den. Product Owner är alltid endast en person och vill man ändra något i Product Backlog är det han som man måste prata med.  Han har hjälp av Scrum Master när han ska ta fram Product Backlog så att målen på listan blir tydliga och lättförståeliga. Om Development Teamet inte förstår något på Product Backlog listan så är det även hans jobb att ändra den så att de förstår och kan göra sitt jobb.

 

Scrum Master:

Scrum Master är något av ledaren för ett projekt. Denne hjälper både Development Team och Product Owner och ser till att alla förstår varandra.

 

Några av sakerna Scrum Master gör för Product Owner är:

  • Ser till att alla förstår målen med produkten;
  • Ser till att Product Owner vet hur denne ska göra med Product Backlog för att maximera värdet på slutprodukten.

Men Scrum Master hjälper även Development team. Några av sakerna han eller hon gör för dem är bland annat:

  • Hjälper dem att skapa produkter av ett högt värde;
  • Hjälper Development Team i organisationer där Scrum inte fullt förstås.
  • Coachar dem och hjälper dem att vara fokuserade.

 

Man kan i princip säga att Scrum Mastern ser till så att allt funkar. Scrum Master organiserar viktiga möten och ser till att alla kan samarbeta. Men Scrum Mastern hjälper även företaget på andra sätt. Vid övergången till Scrum hjälper han till med coaching och planering. Han jobbar också med andra Scrum Masters för att effektivisera övergången till Scrum.

 

Nackdelar med Scrum:

Det finns ingenting som inte har några nackdelar och Scrum är inget undantag. För det mesta funkar det väldigt bra men det finns tillfällen då en annan metod fungerar bättre. Ett av dessa tillfällen är när medlemmarna i ett team är på olika platser i världen. För att Scrum ska funka så bra som möjligt ska medlemmarna i ett team prata med varandra. Det är svårt om man bor på olika platser i världen. Framsteg i tekniken har gjort dessa barriärer mindre men de finns ändå där. Ett annat tillfälle då Scrum inte funkar så bra är när medlemmarna i ett Development Team har väldigt specifika färdigheter. I Scrum ska medlemmarna i ett Development Team kunna hjälpa varandra. Det funkar inte riktigt om alla bara kan göra en sak. Sedan så lämpar sig inte vissa produkter för Scrum. I Scrum så använder man sig av sprintar för att snabbt få fram en produkt. Men vissa produkter behöver mer testning och liknande för att vara säkra. Tex självkörande bilar. Man måste då testa programmen mer än vad man hinner med Scrum. Därför funkar helt enkelt inte Scrum för vissa produkter.

 

Slutsats:

Scrum är en utmärkt hjälp vid utveckling av mjukvaror. Trots dess nackdelar så funkar det i de flesta företag utan problem. Detta bevisas av att enorma företag som Google redan har implementerat det och kör på lika bra som tidigare. Så om du funderar på att implementera Scrum på ditt företag så borde du testa. Det kommer säkerligen att gå bra och i värsta fall får ni väll gå tillbaka till hur det var från början. I bästa fall däremot så kommer ni få teams med bättre sammanhållning och högre produktivitet. Ni kommer kunna leverera fler produkter på kortare tid och ni kommer därmed tjäna mer. Så Scrum har en stor potential om man lyckas implementera det på ett bra sätt. Så varför hyr ni inte bara in en certifierad Scrum Master för att hjälpa mer med Scrum? En del av deras jobb går ut på att hjälpa företag att implementera Scrum. Så med all denna information drar jag slutsatsen att Scrum är här för att stanna. Då mjukvaruutvecklingen bara kommer öka då mer och mer blir digitaliserat kommer fler företag dyka upp. Scrum kommer bara att bli populärare.