Was ist DSDM?
Die Methode zur Entwicklung dynamischer Systeme (DSDM) ist ein agiles Rahmenwerk für die Projektumsetzung, das erstmals 1994 entwickelt wurde und damals für die Softwareentwicklung eingesetzt wurde. Sie sollte eine Verbesserung der schnellen Anwendungsentwicklung (RAD) darstellen, bei der schnelles Prototyping und Iterationen auf Grundlage von Benutzerfeedback im Vordergrund standen. Wie viele agile Methoden zur Projektumsetzung entwickelte sich auch das agile DSDM-Projektrahmenwerk schließlich von einer softwarespezifischen Lösung zu einem allgemeineren Werkzeug für das Projektmanagement.

Zu den Elementen der Methode zur Entwicklung dynamischer Systeme gehören:
- Sie unterscheidet sich von anderen Methoden durch ihre Ausrichtung auf ein solides Fundament und eine starke Governance
- Inkrementeller, iterativer Ansatz für den Fortschritt
- Benutzer- oder Kundenfeedback ist entscheidend für kontinuierliche Verbesserungen
- Stützt sich auf strikte Vorgaben für Kosten, Qualität und Zeit
- Priorisiert den Umfang nach „Muss enthalten sein“, „Sollte enthalten sein“, „Könnte enthalten sein“ oder „Wird nicht enthalten sein“
Neben der Methode selbst führte DSDM 1994 auch zur Gründung des DSDM-Konsortiums. Softwareingenieure und andere Experten schlossen sich zusammen, um das Rahmenwerk als eine gültige Alternative zu den gängigeren Methoden der schnellen Anwendungsentwicklung zu entwickeln und zu verbessern. Zu dieser Zeit gehörten der Gruppe Vertreter von Unternehmen wie British Airways, American Express, Oracle, Logica, Data Sciences und Allied Domecq an. Die Gruppe wurde inzwischen umbenannt und trägt nun den Namen Agile Business Consortium.
Das DSDM-Handbuch wurde 2014 zur kostenlosen Online-Ansicht und -Nutzung bereitgestellt.
DSDM im Vergleich zu RAD und agilen Methoden
Die RAD-Methode war Anfang der 1990er-Jahre als Methode zur Systementwicklung für die Softwareentwicklung und andere IT-Projekte äußerst beliebt. In dieser Zeit vollzog sich ein Wandel von der traditionellen UX mit „grünem Bildschirm“ hin zu grafischen Benutzeroberflächen, die heute zum Synonym für moderne Technologie geworden sind. Dadurch konnte sich auch der Entwicklungszyklus verändern, da diese neue Art der visuellen Benutzeroberfläche für Kommunikation, schnelles Prototyping und Iterationen genutzt wurde.
Die RAD-Methode war eine etwas chaotische agile Systementwicklung. Es gab keinen einheitlich vereinbarten Ansatz und keine einheitliche Definition. Agile DSDM bot einen strukturierteren Ansatz für diese Art von Softwareentwicklungsmodell. Die Methode zur Entwicklung dynamischer Systeme konzentrierte sich stark auf Zeit- und Kostenbudgets durch eine strikte Priorisierung des Umfangs. Außerdem legt sie Wert auf die Kommunikation (und die daraus resultierenden Maßnahmen) zwischen allen Beteiligten.
DSDM legt nicht nur strenge Vorgaben für Fristen und Budget fest, sondern folgt in der Regel auch einer festen Reihenfolge der Ereignisse: Vorprojektphase, Projektlebenszyklusphase und Nachprojektphase. Methoden der RAD-Softwareentwicklung setzen eher auf eine freie Arbeitsweise, bei der Kreativität und Unabhängigkeit selbst auf Kosten der Erschöpfung von Ressourcen im Vordergrund stehen.
Scrum im Vergleich zu DSDM
Scrum und DSDM weisen viele Gemeinsamkeiten, aber auch einige wichtige Unterschiede auf. Einige davon beruhen lediglich auf unterschiedlichen Begriffen. So unterteilt DSDM die Arbeit in die „Entwicklungsaktivität“ (auch Entwicklungsphase genannt) und die „entstehende Lösung“ (auch Ergebnis genannt). Bei Scrum wird das Ergebnis hingegen als „potenziell auslieferbares Inkrement“ bezeichnet.
Beide Methoden verfügen über Listen von Teilaufgaben, die unter Einhaltung strenger Fristen abgeschlossen werden. Beide Methoden arbeiten außerdem auf ein fertiges Projekt hin, das bei Scrum gekennzeichnet wird, sobald das Projekt die „Definition der Fertigstellung“ erreicht. Es gibt jedoch keinen bestimmten Zeitpunkt innerhalb des Projekts, zu dem diese „Definition der Fertigstellung“ vereinbart wird. Dies ist ein wesentlicher Unterschied zwischen Scrum und DSDM.
Bei DSDM gibt es eine festgelegte Phase, in der die Definition der Arbeit (und der abgeschlossenen Arbeit) vereinbart wird: die Fundamentphase des Projekts. Dies geschieht relativ früh, was manchmal dazu führen kann, dass noch nicht belegte Annahmen den Planungsprozess beeinflussen. Um dies zu berücksichtigen, wird die Definition der „abgeschlossenen“ Arbeit im gesamten Projektlebenszyklus regelmäßig überprüft. Ein weiterer Knackpunkt ist, dass Teamleiter eine umfangreiche Vorabplanung (BDUF) vermeiden sollen, da diese eher ein Merkmal von Wasserfallmethoden als von agilen Methoden ist.
DSDM-Prinzipien
Die agilen DSDM-Prinzipien bilden die Leitlinien für jedes Projekt. Insgesamt gibt es 8 Prinzipien.
- Auf den geschäftlichen Bedarf konzentrieren
- Rechtzeitig liefern
- Zusammenarbeiten
- Die Qualität niemals beeinträchtigen
- Schrittweise auf einem soliden Fundament aufbauen
- Iterativ entwickeln
- Kontinuierlich und klar kommunizieren
- Kontrolle nachweisen
DSDM-Techniken & Praktiken
Was DSDM von anderen Systementwicklungsmethoden unterscheidet, sind die folgenden Techniken und Praktiken.
Zeitbegrenzung: DSDM hält sich an strenge Fristen. Dazu muss man das gesamte Projekt in kleinere Aufgaben aufteilen, die jeweils über ein festes Budget und einen festen Zeitrahmen verfügen. Um dies zu bewältigen, werden die Anforderungen priorisiert. Wenn die Zeit oder das Geld knapp wird, werden Anforderungen mit der niedrigsten Priorität entfernt. Ein fertiges Projekt entsteht dann nur aus den wichtigsten Anforderungen.
MoSCoW: Dies sind die Priorisierungsgruppen, mit denen Aufgaben nach ihrer Bedeutung von der höchsten bis zur niedrigsten Stufe eingestuft werden. Die Priorisierungsgruppen sind „Muss“, „Sollte“, „Könnte“ und „Wird nicht“. Das Konfigurationsmanagement hilft dabei, all diese miteinander konkurrierenden Ergebnisse zu verwalten, die häufig gleichzeitig entwickelt werden.
Modellierung und iterative Entwicklung: Die Modellierung hilft dabei, verschiedene Aspekte des Projekts im Verlauf zu visualisieren. Dies unterstützt die Darstellung jedes in Entwicklung befindlichen Elements und ermöglicht eine iterative Entwicklung durch regelmäßige Rückmeldungen und die Umsetzung von Verbesserungen.
Prototypenerstellung: Wie bei vielen agilen Methoden ist die Prototypenerstellung unerlässlich, um das Projekt in einer frühen, konzeptionellen Phase zu testen. Sie bietet die Möglichkeit, die grundlegenden Funktionen abzubilden, offensichtliche Schwachstellen zu erkennen und den Benutzern einen Testlauf der Software zu ermöglichen.
Workshops: Benutzer und Stakeholder werden zusammengebracht, um Anforderungen, Probleme, Ergebnisse und Tests zu besprechen. DSDM setzt von Anfang an auf ein hohes Maß an Benutzerinteraktion. Tests sind für DSDM von großer Bedeutung, da sie eine hohe Ergebnisqualität sicherstellen.
DSDM-Rollen
Jede agile Systementwicklung umfasst eine Liste von Rollen, die besetzt werden müssen. Bei DSDM ist das nicht anders. Laut dem Handbuch sind dies die wesentlichen Rollen in jeder DSDM-Umgebung.
1. Verantwortlicher Sponsor (der „Projektverfechter“) - Die Benutzerorganisation und/oder der Kunde stellt jemanden für diese Rolle bereit. Diese Person kann bei Bedarf auch Mittel und Ressourcen zuweisen. Sie hat bei Entscheidungen das „letzte Wort“.
2. Visionär - Ausgestattet mit konkreten Zielen und einem Verständnis für das Geschäft des Benutzers, initiiert der Visionär das Projekt, indem er frühzeitig die Anforderungen mit der höchsten Priorität festlegt und das Team daran ausrichtet.
3. Benutzerbotschafter - Ein idealer „Testbenutzer“, der die Sichtweise der Benutzergemeinschaft in das Projekt einbringt. Diese Person wird während des gesamten Prozesses zu einer wichtigen Quelle für Rückmeldungen.
4. Benutzerberater - Eine weitere Art von Benutzer, der wichtige Perspektiven in das betreffende Projekt einbringen sollte. Diese Person verfügt möglicherweise über einzigartige Erkenntnisse oder anderes Fachwissen, das sie zum idealen Kandidaten macht.
5. Projektmanager - Ein Projektmanager ist die Person, die das gesamte Projekt verwaltet.
6. Technischer Koordinator - Diese Person entwirft die Systemarchitektur und ist für die Qualitätskontrolle aller technischen Elemente verantwortlich.
7. Teamleiter - Der Leiter des Teams, verantwortlich für die Koordination und die Förderung der Zusammenarbeit.
8. Lösungsentwickler - Bewältigt alle Systemanforderungen, modelliert das System, entwickelt den auszuliefernden Code und erstellt Prototypen.
9. Lösungstester - Testet das Produkt und liefert bei auftretenden Fehlern Kommentare und Dokumentation. Nach der Umsetzung von Korrekturen führt diese Person außerdem erneute Tests durch.
10. Protokollführer - Hält die Anforderungen, Vereinbarungen, Entscheidungen und alle anderen nützlichen Informationen für den Fortschritt des Projekts fest.
11. Moderator - Diese Person ist dafür verantwortlich, den Workshop zu motivieren und vorzubereiten, damit der Fortschritt gleichmäßig und kontinuierlich bleibt. Sie muss ein hervorragender Kommunikator sein und dafür sorgen, dass alle auf Kurs bleiben.
12. Fachspezifische Rollen - Diese Rollen werden von Spezialisten auf ihrem Fachgebiet oder in ihrer Branche besetzt und bieten je nach Projektanforderungen zusätzliche Unterstützung. Sie können von Projekt zu Projekt und von Team zu Team variieren. Zu solchen Rollen können beispielsweise Unternehmensarchitekt, Qualitätsmanager, Systemintegrator und weitere gehören.
Tipps für das DSDM-Projektmanagement
Diese Tipps können dabei helfen, das Beste aus Ihrem DSDM-Projekt herauszuholen, auch wenn alle agilen Systeme von Teilen dieses Wissens profitieren können.
1. Die Geschäftsleitung und alle Mitarbeiter müssen die für ein Projekt gewählte Methode verstehen und unterstützen.
2. Das für das Projekt verantwortliche Team muss sich während des gesamten Prozesses – von der Konzeption bis zur Einführung – zu Benutzertests, Rückmeldungen und Einbindung verpflichten.
3. Es muss ein stabiles und handlungsfähiges Kernteam für das Projekt geben. Die Teammitglieder müssen über Entscheidungskompetenz verfügen, damit der Prozess nicht durch unnötig komplizierte Vorschlags- und Genehmigungsverfahren ins Stocken gerät. Das Team muss außerdem alles haben, was es für seine Arbeit benötigt, etwa die passende Technologie, eine geeignete Entwicklungsumgebung, Projektmanagementwerkzeuge und mehr.
4. Zwischen dem Kunden und dem Anbieter muss eine unterstützende und proaktive Beziehung bestehen, unabhängig davon, ob die Projekte intern entwickelt oder extern vergeben werden.
5. Das Team muss furchtlos sein, wenn es darum geht, die Projektanforderungen ehrlich zu priorisieren und bei Bedarf Elemente mit niedriger Priorität zu streichen. So bleiben die Dinge termingerecht und innerhalb des Budgets.
