Vad är DSDM?
Metoden för dynamisk systemutveckling (DSDM) är ett agilt ramverk för projektleverans som först introducerades 1994 och då användes för programvaruutveckling. Den var tänkt som en förbättring av snabb applikationsutveckling (RAD), som prioriterade snabb prototypframtagning och iteration baserad på användarfeedback. Precis som många agila metoder för projektleverans utvecklades DSDM:s agila projektmetod så småningom från att vara en programspecifik lösning till att bli ett mer allmänt verktyg för projektledning.

Element i metoden för dynamisk systemutveckling omfattar:
- Skiljer sig från andra metoder genom att förlita sig på en stark grund och styrning
- Inkrementellt och iterativt arbetssätt för framsteg
- Användar- eller kundfeedback är avgörande för löpande förbättringar
- Förlitar sig på strikta begränsningar för kostnad, kvalitet och tid
- Prioriterar omfattningen enligt Måste ha, Bör ha, Kan ha eller Ska inte ha
Utöver själva metoden ledde DSDM också till skapandet av DSDM-konsortiet 1994. Programvaruingenjörer och andra experter gick samman för att utveckla och förbättra ramverket som ett giltigt alternativ till de vanligare metoderna för snabb applikationsutveckling. Då omfattade gruppen representanter från bland andra British Airways, American Express, Oracle, Logica, Data Sciences och Allied Domecq. Gruppen har nu bytt namn och går numera under namnet Agile Business Consortium.
DSDM-handboken gjordes kostnadsfri att läsa och använda online 2014.
DSDM jämfört med RAD och agila metoder
RAD-metodiken var mycket populär i början av 1990-talet som en metod för systemutveckling inom programvaruutveckling och andra IT-projekt. Under denna period skedde en övergång från det traditionella användargränssnittet med ”grön skärm” till de grafiska användargränssnitt som nu har blivit synonymt med all teknik. Denna förändring innebar att utvecklingscykeln också kunde förändras genom att använda denna nya typ av visuellt användargränssnitt för kommunikation, snabb prototypframtagning och iteration.
RAD-metodiken var ett något kaotiskt agilt system för utveckling. Det fanns inget enda överenskommet arbetssätt eller någon enhetlig definition. Agila DSDM var ett mer strukturerat arbetssätt för denna typ av programvaruutvecklingsmodell. Metoden för dynamisk systemutveckling var starkt fokuserad på tids- och kostnadsbudgetar genom strikt prioritering av omfattningen. Den prioriterar också kommunikation (och efterföljande åtgärder) mellan alla intressenter.
DSDM är inte bara strikt när det gäller tidsfrister och budget, utan tenderar också att ha en fast ordning för händelserna: fasen före projektet, projektets livscykelfas och fasen efter projektet. RAD-metoder för programvaruutveckling handlar mer om fritt arbete, där kreativitet och självständighet får råda även om det sker på bekostnad av att resurserna tar slut.
Scrum jämfört med DSDM
Scrum och DSDM har många likheter men också några viktiga skillnader. Vissa är endast terminologiska, exempelvis delar DSDM upp arbetet i ”utvecklingsaktiviteten” (även kallad utvecklingsfasen) och ”den framväxande lösningen” (även kallad resultatet). I Scrum kallas resultatet däremot för ”det potentiellt leveransbara inkrementet”.
Båda metoderna har listor över deluppgifter som slutförs baserat på att strikta tidsfrister följs. Båda metoderna arbetar också mot ett färdigt projekt, vilket Scrum markerar när projektet når ”Definitionen av klart”. Det finns dock ingen specifik punkt i projektet då denna ”Definition av klart” fastställs. Detta är en viktig skillnad mellan Scrum och DSDM.
I DSDM finns en fast fas då definitionen av arbetet (och det färdiga arbetet) fastställs: projektets grundfas. Detta sker relativt tidigt, vilket ibland kan innebära att ännu obeprövade antaganden färgar planeringsprocessen. För att hantera detta ska definitionen av ”färdigt” arbete granskas regelbundet under projektets livscykel. En annan stötesten är att teamledare ska undvika omfattande förhandsdesign (BDUF), vilket snarare kännetecknar vattenfallsmetoder och inte agila metoder.
DSDM-principer
De agila DSDM-principerna är den vägledande kraften bakom varje projekt. Det finns totalt 8 principer.
- Fokusera på verksamhetens behov
- Leverera i tid
- Samarbeta
- Gör aldrig avkall på kvaliteten
- Bygg inkrementellt från en stabil grund
- Utveckla iterativt
- Kommunicera kontinuerligt och tydligt
- Visa kontroll
DSDM-tekniker och metoder
Det som gör att DSDM skiljer sig från andra systemutvecklingsmetoder är följande tekniker och metoder.
Tidsboxning: DSDM följer strikta tidsfrister. För att göra detta måste hela projektet delas upp i mindre delar som var och en har en fast budget och tidsram. För att hantera detta prioriteras kraven. Om tiden eller pengarna börjar ta slut tas krav med lägst prioritet bort. Ett färdigt projekt består då endast av de mest väsentliga kraven.
MoSCoW: Detta är de prioriteringsgrupper som används för att rangordna delar från högsta till lägsta vikt. Prioriteringsgrupperna är Måste ha, Bör ha, Kan ha och Ska inte ha. Konfigurationshantering hjälper till att hantera alla dessa konkurrerande leveranser, som ofta utvecklas samtidigt.
Modellering och iterativ utveckling: Modellering hjälper till att visualisera olika aspekter av projektet under arbetets gång. Detta gör det möjligt att presentera varje del under utveckling och möjliggör iterativ utveckling genom att ge regelbunden återkoppling och genomföra förbättringar.
Prototypframtagning: Precis som inom många agila metoder är prototypframtagning avgörande för att provköra projektet i ett tidigt, konceptuellt skede. Det är ett sätt att kartlägga de grundläggande funktionerna, upptäcka uppenbara svagheter och låta användare provköra programvaran.
Workshoppar: Användare och intressenter samlas för att diskutera krav, problem, resultat och testning. DSDM bygger på en hög grad av användarinteraktion redan från början. Testning är mycket viktigt för DSDM, eftersom det säkerställer resultat av hög kvalitet.
DSDM-roller
All agil systemutveckling har en lista över roller som måste tillsättas. DSDM är inget undantag. Enligt deras handbok är detta de viktigaste rollerna i alla DSDM-miljöer.
1. Huvudsaklig sponsor (”projektets förespråkare”) - Användarorganisationen och/eller kunden utser någon till denna roll. Den personen kan också fördela medel och resurser efter behov. Personen har det ”slutgiltiga avgörandet” när det gäller beslutsfattande.
2. Visionär - Med konkreta mål och förståelse för användarverksamheten initierar visionären projektet genom att tidigt fastställa de krav som har högst prioritet och vägleda teamet utifrån detta.
3. Användarrepresentant - En idealisk ”testanvändare” som för in användargruppens perspektiv i projektet. Personen blir en viktig källa till återkoppling under hela processen.
4. Rådgivande användare - En annan typ av användare som bör bidra med viktiga perspektiv på det aktuella projektet. Personen kan ha unika insikter eller annan expertis som gör hen till den idealiska kandidaten.
5. Projektledare - En projektledare är den som ansvarar för att leda hela projektet.
6. Teknisk samordnare - Denna person utformar systemarkitekturen och ansvarar för kvalitetskontrollen av alla tekniska delar.
7. Teamledare - Teamets ledare, ansvarig för samordning och för att underlätta samarbetet.
8. Lösningsutvecklare - Hanterar systemkrav, modellerar systemet, utvecklar leveranskoden och skapar prototyper.
9. Lösningstestare - Testar produkten och tillhandahåller kommentarer och dokumentation när fel uppstår. Personen testar också på nytt efter att korrigeringar har genomförts.
10. Dokumenterare - Dokumenterar kraven, överenskommelserna, besluten och all annan användbar information för projektets fortskridande.
11. Workshopledare - Ansvarar för att motivera och förbereda workshopen så att arbetet fortskrider konsekvent och stadigt. Personen måste vara en skicklig kommunikatör och se till att alla håller kursen.
12. Specialistroller - Detta är roller som tillsätts av specialister inom sitt område eller sin bransch och som ger extra stöd beroende på projektets behov. De kan variera från projekt till projekt och från team till team. Sådana roller kan omfatta verksamhetsarkitekt, kvalitetschef, systemintegratör med flera.
Tips för projektledning med DSDM
De här tipsen kan hjälpa dig att få ut så mycket som möjligt av ditt DSDM-projekt, även om alla agila system också kan dra nytta av delar av denna kunskap.
1. Den högsta ledningen och alla medarbetare måste förstå och ställa sig bakom den metod som valts för ett projekt.
2. Teamet som leder projektet måste åta sig att genomföra användartester, samla in återkoppling och involvera användarna under hela processen – från idé till lansering.
3. Det måste finnas ett stabilt och bemyndigat centralt projektteam. Teammedlemmarna måste ha befogenhet att fatta beslut för att säkerställa att processen inte fastnar i onödigt svårbegripliga förslags- och godkännandeprocesser. Teamet måste också ha allt det behöver för att fungera, till exempel rätt teknik, en hälsosam utvecklingsmiljö, projektledningsverktyg med mera.
4. Det måste finnas en stödjande och proaktiv relation mellan kunden och leverantören, oavsett om projekten utvecklas internt eller läggs ut på entreprenad.
5. Teamet måste visa oräddhet när det gäller att ärligt prioritera projektets behov och skrota lågprioriterade punkter vid behov. Det är så man håller tidsplanen och budgeten.
