An Overview of EventStorming
An approach that fosters communication across diverse backgrounds, helping build a shared understanding of how things work.
"Merge the people. Split the software. It's way simpler this way." (Brandolini, 2018)
EventStorming is a workshop-based approach for exploring complex business domains, particularly within Domain-Driven Design (DDD). Introduced by Alberto Brandolini in 2013, it has become popular among software development teams and organizations.
Traditional business meetings often fall short due to rigid formats and a focus on software features rather than comprehensive business solutions. These meetings typically favor a single-speaker format, leading to passive participation and disengagement, especially among diverse groups. When multiple participants speak simultaneously, communication can break down. Additionally, the absence of a universally understood modeling language can create confusion and make it difficult to grasp key concepts. As a result, despite lengthy discussions and new insights, these meetings rarely produce tangible outcomes, such as useful modeling artifacts (Zimarev, 2019).
EventStorming addresses these challenges by bringing together people who know and those who care to collaboratively build a shared mental model of how something works (Brandolini, 2021). Using a large modeling surface, markers, and sticky notes, participants leverage natural cognitive abilities to think through their environment, bodies, and collaboration with others (Paul, 2021). This approach fosters communication across diverse backgrounds, helping to create a collective understanding of how things work.
At the start of an EventStorming workshop, participants write domain events in the past tense on orange sticky notes and arrange them along a timeline. This process encourages timeline-based thinking and emphasizes understanding change over time, reflecting that “the world is not a collection of things, but a collection of events” (Rovelli, 2018). As the workshop progresses, the focus shifts to responsibility-based thinking, identifying actors, actions, data, and rules.
EventStorming Workshops can be adapted to various levels of detail and objectives:
- Big Picture EventStorming to explore and understand a complex business domain from a high-level perspective.
- Process Modeling EventStorming to dive into a specific process to understand its flow and mechanics in detail.
- Software Design EventStorming to transition from process understanding to software design, outlining system architecture and interactions.
While DDD and EventStorming were initially crafted for business software, they’ve since found application in product-oriented companies. However, this can be challenging since domain experts are often the users themselves. In contrast to enterprise software, where users are typically internal, product users are external and interact only with the surface language and model. This requires the team to define the Ubiquitous Language and Bounded Contexts without direct user input (Brandolini, 2022).
EventStorming emphasizes momentum over accuracy and precision, adhering to the Goldilocks principle, which seeks the just right balance. As mentioned, the workshops use timeline-based thinking to transition into responsibility-based thinking. EventStorming can also support ongoing project needs, helping to generate estimation units throughout development (Vernon, 2016).
In upcoming articles, I plan to dive deeper into the EventStorming approach, highlighting various workshop types and how EventStorming can be integrated with techniques like User Story Mapping and Behavior-Driven Development.
References
Brandolini, A. [@ziobrando]. (2018, October 31). Merge the people. Split the software. It’s way simpler this way. [Tweet]. X. https://x.com/ziobrando/status/1057545171653591040
Brandolini, A. (2021). Introducing EventStorming. Leanpub.
Brandolini, A. (2022, February 1). Domain-Driven Design in ProductLand - Alberto Brandolini - DDD Europe 2022 [Video]. YouTube. https://www.youtube.com/watch?v=ufdcfe8VmHM
Paul, A. M. (2021). The extended mind: The power of thinking outside the brain. HarperCollins. (Kindle Edition).
Rovelli, C. (2018). The Order of Time. Riverhead Books.
Vernon, V. (2016). Domain-driven design distilled. Addison-Wesley Professional.
Zimarev, A. (2019). Hands-on Domain-Driven Design with .NET Core: Tackling complexity in the heart of software by putting DDD principles into practice. Packt Publishing.