Dieser Workshop zielt darauf ab, die Konzepte von Domain Driven Design umfassend zu vertiefen. Wir werden dabei bei einem kurzen Überblick starten und betrachten, wie sich das Thema in den letzten Jahren weiterentwickelt hat. Ein Schwerpunkt des Trainings wird der Entwurf von ausdrucksstarken Fachmodellen sein, welche die Perspektive und die Sprache der Fachexpert:innen widerspiegeln. Hierbei legt der Workshop einen starken Fokus auf diverse EventStorming Techniken und die Arbeit mit zahlreichen Entwurfs Heuristiken. Ein weiteres prominentes Thema ist Strategic Design. In diesem abschließenden Teil beleuchtet das Training den Schnitt von Subdomains und Bounded Context sowie die Modellierung von Beziehungen zwischen Bounded Contexts und den zugehörigen Teams mit Hilfe von Context Maps.
Das Training besteht aus sechs halbtägigen Modulen und beinhaltet einen großen Anteil an praktischen Übungen auf Basis einer anspruchsvollen Fallstudie.
Das Training adressiert folgende Lernziele und Fragestellungen:
- Wie entwerfe ich ausdrucksstarke und leistungsfähige Fachmodelle durch enge Kollaboration mit diversen Stakeholdern
- Welche Entwurfsheuristiken gibt es, wie destilliere ich eigene Heuristiken
- Durchführung von EventStorming Workshops samt Tips & Tricks für schwierige Situationen / Konstellationen
- Abbildung von Fachmodellen im Code mit Hilfe der Tactical Design Patterns
- Arbeit zwischen Problem- und Lösungsraum
- Schnitt und Kategorisierung von Subdomains
- Wie komme ich zu brauchbaren Bounded Context Schnitten und wie gehe mit Trade-Offs um?
- Modellierung von Beziehungen zwischen Bounded Contexts und zugehöriger Teams mit Hilfe von Context Maps samt passender Heuristiken für den Einsatz diverser Patterns
Das Training richtet sich an folgende Zielgruppen:
- Software Entwickler:innen
- Software Architekt:innen
- Fach Architekt:innen
- Requirements Engineers / Business Analyst:innen
Ablauf und Agenda:
Modul 1: Überblick
- Wiederholung der Grundlagen von DDD
- Parallelen zu anderen Communities (Lean, Agile, DevOps, Design Thinking)
- Die Bedeutung einer Ubiquitous Language
Modul 2: Big Picture EventStorming
- Exploration von problem domains mit BigPicture EventStorming
- Destillation einer Ubiquitous Language
Modul 3: Hands-on Modellierung von Fachlichkeit mit Unterstützung durch Design Level EventStorming
- Design Level EventStorming
- Arbeit mit Terminologie und Geschäftsregeln
- Entwurfs Heuristiken
- Umgang mit Trade-offs
- Iterativer Entwurf
Modul 4: Patterns des Tactical Design
- Tactical DDD Patterns:
- Value Object
- Entity
- Aggregate
- Service
- Factory
- Repository
- Supple Design
- DDD und Test Driven Development
Modul 5: Strategic Design: Domains & Subdomains
- Überblick über Strategic Design
- Identifikation von Subdomains
- Strategische Überlegungen im Hinblick auf Subdomains
Modul 6: Strategic Design: Bounded Contexts und Context Maps
- Korrelation Bounded Context / Subdomain
- Identifikation von Bounded Contexts
- Arbeit mit der Bounded Context Design Canvas
- Context Maps