Exploring EventStorming

I returned to work from my sabbatical and following the DDD meetup was going to look for opportunities to start using EventStorming in my day job. Amazingly within 30 minutes of getting back to the office my solutions architect approached me and said he had finally read the Domain Driven Design book he had sitting on his desk for the last 8 months. To my chagrin he said he heard about EventStorming and wanted to use it for this project we were kicking off, but he didn’t really know anything about it, other than software folks saying it was a valuable practice.

I told him he was in luck because I had not only heard of it and looked into it some, but had actually DONE IT. I proceeded to tell him about the DDD meetup and he wanted me to get ready because he was going to push for EventStorming to be a big part of the upcoming project kick-off offsite (which was actually onsite). So I started doing a deep dive in the research and have discovered a lot, and still have a lot to learn.

First I watched a few videos from Alberto Brandolini, and definitely the 50,000 Orange Stickies Later video from 2018 had a lot of great information. I can tell there is some difficulty in explaining the technique without actually doing it. While I was piecing some things together from the video, I still felt kind of challenged. I found some other videos, blog posts, Github repositories, and more with notes and facilitation materials, I poured through it all.

I spent a week or so deep diving and preparing and finally we decided to do a trial run. I figured once we did it we’d understand the gaps and areas I needed to explore further to have better understanding and explanations for our business partners. Shortly before we did our trial run I discovered Alberto was working on a EventStorming book on Leanpub. As I write this it’s only about 70% complete and there is a lot of repetition, but it really helped fill in some gaps - but having only just discovered it, it also created some confusion and lack of clarity! There was so much new information, I didn’t see the where to start and what to do first, and didn’t understand how to layer on the additional levels of complexity.

We decided to at least start for our domain space, acknowleding that we would be incomplete, and that we wouldn’t take that information into any design or future sessions since there would be too many gaps. I set up the space, hung up the paper, had stickies in all the colors mentioned, and even created a couple flip charts. The first being an overall legend based on some things I had seen online and the other being “the picture that explains everything” that Alberto had shown in multiple presentations and was in the book. At this point it explained very little to me and I really didn’t understand how we tackle this process.

We started putting up events, that seemed to make sense. But from there we sort of got stuck - commands, external systems, aggregates, read models, policies… just so many pieces that we had at our disposal that we didn’t quite know how to piece together. I pulled out Alberto’s book and we started going through it, and finally found a section about Big PIcture EventStorming and the steps to layer things in. It was starting to click more, and a lot of the extra things we were looking at we realized was a next level of complexity that we didn’t need to get into yet. Really what we wanted was the big picture, some problems and opportunities, and maybe some of the initial modeling structure, but the rest was getting too deep into design.

So a lot more exploration to do in the EventStorming space. I’ve learned a lot, but still some aspects of this are not completely making sense. I’m going to deep dive into Alberto’s book and I learned that Paul Rayner (creator of the Explore DDD conference in Denver) has a Facilitating EventStorming book, so going to keep working in this space and try to run a few more sessions to try to get a better view on facilitating these sessions. At some point I’m going to write a long post about running this, maybe put together a facilitators guide, and I’m thinking about putting a talk together to share with others, take to a meetup, or whatever else. I think this is a really powerful technique, I just need to wrap my arms around it a bit more so I understand and can explain it better.