EventStorming

Nein, das ist kein Bild von Gipf-Oberfrick sondern...
Beitrag erstellt am:28.08.17
In letzter Zeit nutze ich für DDD-Workshops vermehrt EventStorming, eine von Alberto Brandolini entwickelte Methode. Meine bisherigen Erfahrungen sind vornehmlich positiv, insbesondere beim Zusammentragen von Anforderungen für Systeme, bei denen Event Sourcing und CQRS eine Rolle spielen.

Nach meiner bisherigen Erfahrungen ist die Methode relativ einfach zu erlernen, macht Spass und sorgt dafür, dass Domänenexperten und Software-Entwickler rasch ins Gespräch kommen.

EventStorming misst der Kommunikation, dem Entdecken von Anforderungen und möglichen Problemen grosse Bedeutung zu. Es hat schon fast etwas Unheimliches, wie rasch der Einstieg in ein Fachgebiet über fachliche Ereignisse gelingt und wie meist nach wenigen Minuten eine lebhafte Diskussion in Gang kommt.

Wie funktioniert EventStorming?

Die einzelnen Schritte sehen grob wie folgt aus:
  • Lade die richtigen Leute zum Workshop ein. Das Sitzungszimmer sollte ausreichend Platz bieten und der ausgewählte Personenkreis sollte zum einen aus Personen bestehen, die neugierig sind und Fragen stellen und zum anderen dürfen diejenigen nicht fehlen, welche die Fragen auch beantworten können.
  • Stelle ausreichend Raum für das Modellieren bereit. Ein mickriges Whiteboard oder Flip-Chart reicht nicht. Besser: eine ganze Wand und eine Rolle Plotter-Papier.
  • Starte die Reise mit Domänen-Ereignissen. Ein Domänen-Ereignis ist etwas von Bedeutung, das in der Fachdomäne passiert ist, z.B. eine Bestellung ist eingetroffen oder ein Artikel wurde aus dem Warenkorb entfernt. Jedes Ereignis landet auf einem orangefarbenen Post-It. Placiere die Ereignisse in ihrer zeitlichen Reihenfolge von links nach rechts.
  • Suche nach den Auslösern für Ereignisse. Manche von ihnen sind die direkte Folge einer Aktion eines Anwenders; wir nennen solche Aktionen Kommandos und notieren sie auf blauen Post-Its. Andere Ereignisse haben ihren Ursprung in einem externen System; externe Systeme notieren wir auf violetten Post-It-Zetteln. Manche Ereignisse wiederum sind die direkte Folge eines anderen Ereignisses; dann placieren wir die beiden Ereignisse einfach hintereinander.
  • Halte nach Aggregaten Ausschau. Hierbei eine Warnung an die Software-Entwickler unter uns: Hütet euch vor einer code-zentrieren Sichtweise! Betrachtet die Aggregate sozusagen von aussen nach innen! Aggregate sind die Elemente in unserem System, auf denen wir Kommandos ausführen. Die Aggregate entscheiden dann, ob sie ein Kommando ausführen oder nicht und lösen die entsprechenden Domänen-Ereignisse aus.
Die folgende Abbildung zeigt grob den hinter dem EventStorming stehenden Modellierungsprozess:
Modellierung mit EventStorming
Ich hoffe, mir ist es gelungen, zumindest  euer Interesse an dieser ebenso einfachen wie mächtigen Idee zu wecken. Wer mehr wissen möchte, darf sich gerne bei mir melden.