Enable Domain-Driven Design mit Gamification

Domain-Driven Design Cards (DDD-Cards) ist eine gamifizierte methodische Unterstützung für strategisches und taktisches Domain-Driven Design.

DDD-Cards ist ein gemeinschaftliches Projekt mit nilsbert. DDD-Cards beinhalten das Context Mapping, das Strategic Classification, das Bounded Context sowie das Tactical Architecture Game spielen.

Enabling und Enabler Teams

Der Ansatz Team Topologies beschreibt Enabler-Teams mit der Aufgabe andere Teams dabei zu unterstützen, ihre Kernaufgaben erfolgreich durchzuführen. Diese produkt- oder wertstromorientierten Teams (Stream-Aligned Teams) fokussieren sich auf die stetige Lieferung von Geschäftswert. Auch diese Teams müssen ihre Arbeitsweise und fachliche Expertise weiterentwickeln, um ihre Leistungsfähigkeit zu sichern oder zu steigern.

Hier kommen Enabler-Teams ins Spiel: Sie bringen tiefgehende Fachexpertise ein und arbeiten temporär mit Stream-Aligned Teams zusammen.

Beispiele hierfür sind:

  • Aufbau eines Application Performance Monitoring

  • Etablierung des Vorgehen Test-Driven Development

  • Aufbau einer modernen Continuous Delivery Pipeline

  • Etablierung von Behavior-Driven Development

  • Coaching und Consulting im Bereich der Application Security

  • Coaching und Consulting im Bereich Softwarearchitektur

  • Initiale Begleitung bei umfangreichen Architekturmodernisierungen

  • Begleitung bei der Einführung von Domain-Driven Design

  • ...

DDD-Cards ist ein Werkzeug für Enabler-Teams oder andere Personen / Rollen, um bei der Einführung von Domain-Driven Design zu unterstützen.

Gamification

Gamification überträgt Spielprinzipien auf andere Kontexte, um Motivation, Kreativität und Interaktion zu steigern. Ein Erfolgsfaktor ist die intrinsische Motivation sowie der natürliche Spieltrieb von Menschen, gewünschte Verhaltensweisen auszuführen, Aufgaben zu erledigen oder Ziele zu erreichen.

Die DDD-Cards stellen Teams vor Herausforderungen, die sie gemeinsam meistern müssen. Dies geschieht in Form von Missionen, die im Spielverlauf abgeschlossen werden müssen.

Ein weiterer wichtiger Aspekt von Domain-Driven Design Cards ist das Ziel, alle Mitglieder der Gruppe gleichwertig zu involvieren, unabhängig von ihrem Wissensstand und Charaktertyp. Dies trägt darüber hinaus zu den Zielen der Domain-Driven Design Philosophie bei, die eine Kultur des breiten gemeinsamen Verständnisses und der Zusammenarbeit anstrebt. Domain-Driven Design Cards basieren auf der Annahme, dass in der Realität selten eine Gruppe existiert, die durchgehend über tiefes Wissen im Bereich DDD verfügt. Daher ist die Zielsetzung von Domain-Driven Design Cards, dass die Nutzung auch ohne spezielle Expertise möglich ist. Die Spieler/innen werden durch die Spielkarten, durch eine Expert/in in DDD sowie eine Moderator/in unterstützt. In Bezug auf den Ansatz Team Topologies wird diese Aufgabe von Enablern übernommen.

Enabling von Domain-Driven Design mittels Domain-Driven Design Cards

DDD-Cards sind ein spielerischer Ansatz, um die Prinzipien und Konzepte von Domain-Driven Design zu vermitteln und anzuwenden. Dies erfolgt über fünf für sich stehende Spiele, die in Summe die wichtigsten Kernelemente von Domain-Driven Design über den gesamten Softwareentwicklungsprozess unterstützen.

Bounded Context Game

Definition von Subdomänen und Bounded Contexts anhand visualisierten Fachwissens und DDD-Heuristiken.

Strategic Classification Game

Bewertung der strategischen Bedeutung sowie Ableitung einer Handlungsstrategie für Subdomänen bzw. Bounded Contexts.

Context Mapping Game

Finden und Definieren von Abhängigkeiten zwischen Bounded Context auf Basis der Methode Context Mapping.

Tactical Architecture Game - Architecture Pattern

Gemeinsame Entscheidung für ein taktisches Architekturmuster.

Tactical Architecture Game - Starting Architecture Decisions

Finden eines gemeinsamen Architekturplans für die Umsetzung von Bounded Contexts auf taktischer Architekturebene auf Basis von Architecture Decision Records.

Jedes Spiel fördert Kommunikation, Wissensaustausch und Wissenserweiterung. Dies verspricht gute Entscheidungen auf der jeweilige Architekturebene unter Berücksichtigung aller relevanter Perspektiven und fördert eine Team-Vision und ein Wir-Gefühl.