Att arbeta agilt med Scrum
Scrum är en metod för systemutveckling som introducerades under 1990-talet och är idag en etablerad metod som används över hela världen.
Vi förespråkar ett agilt arbetssätt. Ordet agil betyder lättrörlig, med scrum och agil utvecklingsmetodik följer det löpande arbetet målet istället för den initiala specifikationen. Genom löpande leveranser sker förändrings- och förankringsarbetet successivt och det blir möjligt att prioritera nytta framför “bra att ha” funktioner. I alla projekt är projektets kostnad, leveranstidpunkt och leveransens omfattning / scope faktorer och styrmedel. I ett fastprisprojekt utgör den inledande specifikationen underlag för kostnad och leveranstidpunkt, risken hanteras av leverantören genom fastpristillägg och luft i kalendern. Gapet mellan verkligt behov och den initiala specifikationen hanteras potentiellt genom ytterligare projekt efter första leveransen. Att i stället arbeta agilt innebär god kontroll över kostnad och tid. Leverantören behöver inte göra några fastpristillägg eller lägga till kalendermässiga marginaler. Gapet mellan verkligt behov och den initiala uppfattningen / specifikationen hanteras genom många leveranser och möjlighet att tidigt utvärdera systemets successiva utveckling mot målet.
Fördelen med ett agilt arbetssätt är främst är att man kan vara öppen för förändrade krav under utvecklingens gång. Det är inte ovanligt att en gjord förstudie inte ger alla svar och man kan komma på förbättringar under arbetets gång som gör produkten bättre, vilket man hade missat med en traditionell vattenfallsmetodik där allt specificerats i början av projektet. De krav man ställer i början av projektet kanske visar sig vara helt fel i slutet av projektet.
Nackdelen med ett agilt arbetssätt är svårigheten att bedöma och planera tidsåtgång för den färdiga systemet. Med ständigt nya krav riskerar även utvecklingstiden att öka och viktiga nyttor faller utanför budget. Det är därför viktigt att representanter från beställaren och oss prioriterar vilka funktioner som är lämpliga att förädla och vilka funktioner som bara kan specificeras och sparas till senare.
Ärendestocken är ett viktigt verktyg för att tillförsäkra oss att det färdiga systemet också innehåller de viktigaste nyttorna. Ärendestocken är en ordnad lista med alla utvecklingspunkter som krävs för att uppnå en slutgiltig produkt. Detta är ett levande dokument och ansvaret för dess innehåll och ordning är produktägarens/beställarens. Både prioritering och innehåll kan och bör skifta över tid, men det är alltså enbart produktägaren som tillåter dessa ändringar. Eftersom produktens ärendestock är prioriterad efter affärsnytta eller något annat nyttobegrepp kan omfattningen vara större än avsatta resurser. Det är ärendestockens utveckling och förädling under projektets gång som eliminerar gapet mellan den initiala förväntan och specifikationen och den produkt som man i efterhand vill ha.
När man pratar om agilt arbetssätt brukar man även prata om ord som inkrementellt och iterativt. Inkrementellt betyder att man utvecklar små delar som man lägger till slutprodukten under hela processen. Iterativt betyder att man jobbar i cykler för att förbättra exempelvis en funktion genom prototyp, test, analys och förbättring i så många cykler som krävs för att funktionen ska bli så bra som beställaren vill.
Produktens ärendestock
Produktens ärendestock är en ordnad lista med alla utvecklingspunkter som krävs för att uppnå en slutgiltig produkt. Detta är ett levande dokument och ansvaret för dess innehåll och ordning är produktägarens. Både prioritering och innehåll kan och bör skifta över tid, men det är alltså enbart produktägaren som tillåter dessa ändringar. Eftersom produktens ärendestock är prioriterad efter affärsnytta eller något annat nyttobegrepp kan omfattningen vara större än avsatta resurser.
Iterationens ärendestock
Innehållet i iterationens ärendestock är de uppgifter som utvecklingsteamet avser att arbeta med under en iteration. Varje enskild uppgift måste vara tydligt definierad, både i vad som förväntas av uppgiften, men också hur den definieras som färdig. Genom att titta på utvecklingen i iterationens ärendestock går det att följa utvecklingsgruppens framsteg. Ibland arbetar vi med en planeringsfas av en iteration och då kan gruppen göra en bedömning av vad ärendestockens omfattning och styra den till ett leveransmål. I andra fall arbetar gruppen med en brutto-ärendestock och leveransen blir det iterationen räcker till.
Inkrement
Ett inkrement är den samlade produkt som uppstår efter en iteration, då produkten uppdateras med iterationens uppgifter.