factor10 Solution Designer

Fältanteckningar

EventStorming

Domänkunskap är oftast utspridd hos flera människor samtidigt: affärsfolk, utvecklare, drift, support. Ingen enskild person har hela bilden. Traditionella metoder (kravdokument, UML, storyboards) börjar oftast i datamodellen eller UI-skissen, och riskerar därmed att missa de ögonblick där något betydelsefullt händer i verksamheten. EventStorming vänder på det och börjar i andra änden: vad är det som ska inträffa, sett från affärens perspektiv? Då dyker de mänskliga besluten, gränserna, aggregaten, osv upp "av sig själva".

EventStorming är en kollaborativ workshop-teknik utvecklad av Alberto Brandolini. Idén är att snabbt visualisera ett domänbeteende genom att tillsammans namnge domänhändelser (domain events) i kronologisk ordning på en lång vägg.

Att köra workshopen tillsammans i samma rum är det överlägset bästa alternativet, men ibland är det intressant att ta in resultatet i ett digitalt verktyg för vidare förädling efteråt. Och ibland får digitalt samarbete helt enkelt duga när alternativet inte är möjligt.

 

De tre vanligaste varianterna

  1. Big picture: fånga hela flödet på högsta nivå. Alla intressenter i
    rummet. Orange post-its för domänhändelser, satta i tidsordning från vänster
    till höger.
  2. Process modeling: zooma in på den mest intressanta processen först.
  3. Design level: nu skiftar fokus från tid till ansvar, mer centrerat kring
    aggregat. Resultatet blir input till taktisk DDD. Här är det oftast mest
    tyngdpunkt på utvecklare i rummet.

 

Att namnge händelserna är ett av flera ställen där det gemensamma ordförrådet arbetas fram. En händelse formuleras i dåtid, med de ord verksamheten faktiskt använder, så en vägg av dem är en bra start på Ubiquitous Language. Hört högt, i rummet, från alla som är där.

En start, dock, och inte språket självt. Och notera vems språk det blir: ett Ubiquitous Language tillhör teamet i en Bounded Context, inte affärssidan och inte utvecklarna heller. Det som får det att fungera är att det inte finns någon överlämning mellan rollerna. Utvecklarna är med i samtalet och hjälper både språket och förståelsen av affären att växa. Domänexperterna är med i designarbetet, där samma språk måste hålla. Båda, hela vägen. Det är tricket, och det är därför väggen är värd att stå vid tillsammans.

Det lever också: det fortsätter utvecklas i takt med förståelsen, och ett namn som var rätt på väggen kan vara fel tre månader senare. Det sätts aldrig en gång för alla, och ett namnbyte är oftast framsteg snarare än onödigt omtag.

När två personer i rummet namnger samma ögonblick olika har du hittat antingen en synonym att reda ut eller en gräns att dra.

 

Fler varianter?

Alberto pratar också om Value-Driven EventStorming och UX-Driven EventStorming. Vi har valt att samla dessa under Process modeling, med en förtydligande notering så att det blir tydligt för läsaren vad som menas. :)

 

Vidare läsning