Skip to main content

Wat is DSDM?

De methode voor dynamische systeemontwikkeling (DSDM) is een raamwerk voor flexibele projectoplevering dat voor het eerst ontstond in 1994 en destijds werd gebruikt voor softwareontwikkeling. Het was bedoeld als verbetering van snelle applicatieontwikkeling (RAD), waarbij snelle prototyping en iteratie op basis van feedback van gebruikers vooropstonden. Net als veel flexibele methoden voor projectoplevering evolueerde het agile projectraamwerk van DSDM uiteindelijk van een softwarespecifieke oplossing naar een algemener hulpmiddel voor projectmanagement.

Elementen van de methode voor dynamische systeemontwikkeling zijn onder andere:

  • Onderscheidt zich van andere methoden door te steunen op een sterke basis en goed bestuur
  • Stapsgewijze, iteratieve aanpak van de voortgang 
  • Feedback van gebruikers of klanten is essentieel voor voortdurende verbeteringen 
  • Steunt op strikte beperkingen wat betreft kosten, kwaliteit en tijd 
  • Geeft prioriteit aan de reikwijdte volgens Moeten hebben, Zouden moeten hebben, Zouden kunnen hebben of Zullen niet hebben

Naast de methode zelf leidde DSDM in 1994 ook tot de oprichting van het DSDM Consortium. Software-engineers en andere experts bundelden hun krachten om het raamwerk te ontwikkelen en te verbeteren als een geldig alternatief voor de gebruikelijkere methoden voor snelle applicatieontwikkeling. Destijds bestond de groep uit vertegenwoordigers van onder andere British Airways, American Express, Oracle, Logica, Data Sciences en Allied Domecq. De groep heeft inmiddels een nieuwe naam en heet nu het Agile Business Consortium.

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

Het DSDM-handboek werd in 2014 gratis online beschikbaar gesteld om te bekijken en te gebruiken.

Get regular tech leadership wisdom for delivering better software and systems.

DSDM versus RAD versus agile

De RAD-methode was begin jaren 90 enorm populair als methode voor systeemontwikkeling bij softwareontwikkeling en andere IT-projecten. In deze periode vond er een verschuiving plaats van de traditionele UX met een “groen scherm” naar de grafische gebruikersinterfaces die inmiddels synoniem zijn geworden met alle technologie. Door deze verandering kon ook de ontwikkelcyclus veranderen: dit nieuwe type visuele gebruikersinterface kon worden gebruikt voor communicatie, snelle prototyping en iteratie. 

De RAD-methode was een enigszins chaotische flexibele systeemontwikkeling. Er was geen unaniem overeengekomen aanpak of definitie. Agile DSDM was een meer gestructureerde aanpak voor dit type softwareontwikkelingsmodel. De methode voor dynamische systeemontwikkeling richtte zich sterk op tijd- en kostenbudgetten door strikte prioritering van de reikwijdte. Ook geeft de methode prioriteit aan communicatie (en de daaruit voortvloeiende actie) tussen alle belanghebbenden. 

DSDM stelt niet alleen strikte eisen aan deadlines en budgetten, maar hanteert doorgaans ook een vaste volgorde van gebeurtenissen: de fase vóór het project, de fase van de projectlevenscyclus en de fase na het project. Methoden voor RAD-softwareontwikkeling draaien meer om werk in vrije vorm, waarbij creativiteit en onafhankelijkheid de vrije hand krijgen, zelfs ten koste van het uitputten van middelen. 

Scrum versus DSDM

Scrum en DSDM vertonen veel overeenkomsten, maar hebben ook enkele belangrijke verschillen. Sommige verschillen zijn slechts gebaseerd op terminologie. Zo verdeelt DSDM het werk in de “engineeringactiviteit” (ook wel de ontwikkelfase genoemd) en de “opkomende oplossing” (ook wel de uitvoer genoemd). Bij Scrum staat de uitvoer daarentegen bekend als de “potentieel vrij te geven increment”. 

Beide methoden hebben lijsten met subtaken die worden voltooid op basis van het naleven van strakke deadlines. Beide methodologieën werken bovendien toe naar een afgerond project, wat Scrum markeert zodra het project de “Definitie van gereed” bereikt. Er is echter geen specifiek moment binnen het project waarop deze “Definitie van gereed” wordt overeengekomen. Dit is een belangrijk verschil tussen Scrum en DSDM. 

Bij DSDM is er een vaste fase waarin de definitie van het werk (en van afgerond werk) wordt overeengekomen: de funderingsfase van het project. Dit gebeurt relatief vroeg, wat soms kan betekenen dat nog niet onderbouwde aannames het planningsproces beïnvloeden. Om hiermee rekening te houden, moet de definitie van “afgerond” werk gedurende de hele projectlevenscyclus periodiek worden geëvalueerd. Een ander knelpunt is dat teamleiders Groot ontwerp vooraf (BDUF) moeten vermijden, wat meer kenmerkend is voor de watervalmethode en niet voor agile. 

DSDM-principes

De agile principes van DSDM vormen de leidraad achter elk project. Er zijn in totaal 8 principes.

  1. Richt je op de bedrijfsbehoefte
  2. Lever op tijd
  3. Werk samen
  4. Doe nooit concessies aan kwaliteit
  5. Bouw stapsgewijs voort op een solide basis
  6. Ontwikkel iteratief
  7. Communiceer voortdurend en duidelijk
  8. Toon controle

DSDM-technieken en -praktijken

Wat DSDM onderscheidt van andere systeemontwikkelingsmethoden zijn de volgende # technieken en praktijken. 

Tijdvakken: DSDM houdt zich aan strikte deadlines. Hiervoor moet het hele project worden opgesplitst in kleinere onderdelen die elk een vast budget en tijdsbestek hebben. Om dit te kunnen beheren, krijgen de vereisten prioriteit. Als de tijd of het geld opraakt, worden vereisten met de laagste prioriteit verwijderd. Een afgerond project bestaat dan alleen uit de meest essentiële vereisten. 

MoSCoW: Dit zijn de prioriteitsgroepen die worden gebruikt om onderdelen te rangschikken van het hoogste tot het laagste belang. De prioriteitsgroepen zijn Moeten hebben, Zouden moeten hebben, Zouden kunnen hebben en Zullen niet worden opgenomen. Configuratiebeheer helpt bij het beheren van al deze concurrerende opleveringen, die vaak tegelijkertijd worden ontwikkeld.

Modelleren en iteratieve ontwikkeling: Modelleren helpt om onderweg verschillende aspecten van het project te visualiseren. Hierdoor kan elk onderdeel in ontwikkeling worden gepresenteerd en wordt iteratieve ontwikkeling mogelijk gemaakt door regelmatige feedback te geven en verbeteringen door te voeren. 

Prototypen: Net als bij veel agile methodologieën is het maken van prototypen essentieel om het project in een vroeg, conceptueel stadium te testen. Het is een manier om de basisfuncties in kaart te brengen, duidelijke zwakke punten te ontdekken en gebruikers de software te laten testen. 

Workshops: Gebruikers en belanghebbenden worden samengebracht om vereisten, problemen, resultaten en tests te bespreken. DSDM steunt vanaf het allereerste begin op een hoge mate van gebruikersinteractie. Testen zijn voor DSDM van groot belang, omdat ze resultaten van hoge kwaliteit garanderen. 

DSDM-rollen

Bij elke agile systeemontwikkeling hoort een lijst met rollen die moeten worden ingevuld. Dat geldt ook voor DSDM. Volgens hun handboek zijn dit de essentiële rollen in elke DSDM-omgeving. 

1. Opdrachtgever (de “projectvoorvechter”) - De gebruikersorganisatie en/of de klant wijst iemand aan voor deze rol. Deze persoon kan indien nodig ook middelen en budgetten toewijzen. Hij of zij heeft het “laatste woord” bij het nemen van beslissingen.

2. Visiehouder - Gewapend met concrete doelstellingen en inzicht in de bedrijfsvoering van de gebruiker, start de visiehouder het project door in een vroeg stadium de vereisten met de hoogste prioriteit vast te leggen en het team op basis daarvan te begeleiden. 

3. Gebruikersambassadeur - Een ideale “testgebruiker” die het perspectief van de gebruikersgemeenschap in het project inbrengt. Deze persoon wordt gedurende het hele proces een belangrijke bron van feedback. 

4. Gebruikersadviseur - Een ander type gebruiker dat essentiële perspectieven aan het project moet toevoegen. Deze persoon kan unieke inzichten of andere deskundigheid hebben, waardoor hij of zij de ideale kandidaat is. 

5. Projectmanager - Een projectmanager is iemand die het algehele project beheert. 

6. Technisch coördinator - Deze persoon ontwerpt de systeemarchitectuur en is verantwoordelijk voor de kwaliteitscontrole van alle technische elementen. 

7. Teamleider - De leider van het team, verantwoordelijk voor coördinatie en het faciliteren van samenwerking. 

8. Oplossingsontwikkelaar - Deze persoon beheert alle systeemvereisten, modelleert het systeem, ontwikkelt de op te leveren code en maakt prototypes.

9. Oplossingstester - Test het product en levert opmerkingen en documentatie wanneer er fouten optreden. Deze persoon test het product ook opnieuw nadat correcties zijn doorgevoerd. 

10. Notulist - Deze persoon legt de vereisten, afspraken, beslissingen en andere nuttige informatie voor de voortgang van het project vast. 

11. Begeleider - Deze persoon is verantwoordelijk voor het motiveren en voorbereiden van de workshop om de voortgang consistent en stabiel te houden. Hij of zij moet uitstekend kunnen communiceren en ervoor zorgen dat iedereen op koers blijft. 

12. Specialistische rollen - Dit zijn rollen die worden vervuld door specialisten in hun vakgebied of sector, die extra ondersteuning bieden afhankelijk van de behoeften van het project. Ze kunnen per project en per team verschillen. Voorbeelden van dergelijke rollen zijn bedrijfsarchitect, kwaliteitsmanager, systeemintegrator en meer. 

Tips voor DSDM-projectmanagement

Deze tips kunnen helpen om het meeste uit je DSDM-project te halen, hoewel alle agile systemen ook baat kunnen hebben bij het toepassen van delen van deze kennis. 

1. Het senior management en alle medewerkers moeten de gekozen methodologie voor een project begrijpen en er volledig achter staan. 

2. Het team dat het project leidt, moet zich gedurende het hele proces — van concept tot lancering — inzetten voor gebruikerstests, feedback en betrokkenheid.

3. Er moet een stabiel en bevoegd kernontwikkelingsteam zijn. Teamleden moeten beslissingsbevoegdheid hebben om ervoor te zorgen dat het proces niet verstrikt raakt in onnodig ingewikkelde voorstel- en goedkeuringsprocedures. Het team moet ook alles hebben wat het nodig heeft om te functioneren, zoals de juiste technologie, een gezonde ontwikkelomgeving, projectmanagementtools en meer. 

4. Er moet een ondersteunende en proactieve relatie zijn tussen de klant en de leverancier, ongeacht of de projecten intern worden ontwikkeld of uitbesteed. 

5. Het team moet blijk geven van onverschrokkenheid als het gaat om het eerlijk prioriteren van projectbehoeften en het schrappen van items met lage prioriteit wanneer dat nodig is. Zo blijven zaken op schema en binnen het budget.