Dat een agile denkwijze belangrijk is weten we allemaal. Vanuit software ontwikkeling zijn we hier nu al tientallen jaren mee bezig. We zoeken manieren om IT en het businessdomein dichter bij elkaar te brengen. Een mooi bewijs zien we in dagelijkse praktijk, waarin een van Nederlands grootste financiële dienstverleners zichzelf transformeert naar een bedrijf waar business en IT letterlijk samengevoegd worden.
Afgelopen jaren hebben we gezien dat DevOps er voor zorgt dat software ontwikkelaars, beheerders, analisten en infrastructuur engineers veel intensiever zijn gaan samenwerken. Een stap verder zijn praktijkvoorbeelden waarin we weer terug gaan naar de essentie en ons bezig gaan houden met de software levenscyclus: we herontdekken waar software engineering over gaat.
In dat proces zijn we ook op zoek hoe de business en IT alignment goed vorm te geven. De ideeën die Eric Evans in 2004 aangedragen heeft in Domain Driven Design (DDD) zijn daar een mooie voorbeeld van. Het vraagstuk hoe te komen tot de ubiquitous language. Vanuit technisch oogpunt heeft Greg Young ons een mooi beeld gegeven hoe we DDD gedistribueerd kunnen opzetten: CQRS (Command Query Responsibility Segregation) en is event sourcing ontstaan.
Wat ik fascinerend vind is dat we een software design principe gekregen hebben, waarin we het businessdomein in de implementatie terug vinden. We proberen tot implementaties te komen waarin geen vertaalslagen gemaakt worden van de business(processen), maar juist de businesstermen en gedragingen direct terug kunnen vinden.
De basisgedachte die DDD gebracht heeft zijn geëvolueerd en brengen ons onder andere EventStorming. Alberto Brandolini heeft deze benadering uitgewerkt. Centraal in deze aanpak staat het samen met de gebruikers vaststellen van de belangrijkste business events: gebeurtenissen die voor de business belangrijk zijn.
In bijvoorbeeld een hypotheekdomein kunnen dit gebeurtenissen zijn als een hypotheekaanvraag is afgerond, een verlenging heeft plaatsgevonden, er is een aflossing geweest. Gebeurtenissen die het gevolg zijn van acties die in het businessdomein plaatsvinden. Acties die mogelijk ondersteund kunnen of moeten worden door een IT oplossing.
Ik vind het mooie van EventStorming dat het geen “IT-ding” is, maar samen met de domeinexpert aan de slag om de events te identificeren. In de praktijk betekent dit dat we de vrijheid nemen om events te benoemen op post-its, op een brownpaper te hangen en deze events in een tijdslijn plaatsen.
Essentie is dat we gezamenlijk het businessdomein modelleren. Gezamenlijk gaan zien wat belangrijk is om de organisatie doelstellingen te bereiken. Om zo uiteindelijk te komen tot een backlog. En gezien de directe relatie die EventStorming heeft met DDD, geven onder andere boeken als Implementing Domain Driven Design van Vaugh Vernon ons handvatten voor de realisatie.
Ik denk dat EventStorming een belangrijke vervolgstap in de evolutie om de om de grenzen tussen IT en business te laten vervagen. Een vorm van samenwerking en modelleren om daadwerkelijk als één organisatie verder te kunnen. Gezien de kansen en de snelheid van veranderingen die nu aan de orde zijn, is de mate waarin een organisatie snel kan inspelen op veranderingen van levensbelang. Een van de belangrijkste reden om hierin te investeren en nog meer ervaringen in de praktijk op te doen.