What is event storming?
Event storming is a rapid group modeling approach to domain-driven design. Originally created by Alberto Brandolini in 2012 as a quick alternative to precise UML diagramming, event storming is a workshop-style technique that brings project stakeholders together (both developers and non-technical users) to explore complex business domains.
Keep in mind, event storming is not a substitute for a UML diagram, design document, deployment plan, or other implementation models. Rather it is intended to support and accelerate the development process by bringing together relevant stakeholders to quickly model the broader business domain and its processes.
Advantages of event storming
Event storming is designed to be both efficient and fun. By bringing key practitioners into the same room (literally or virtually), event storming has the advantage of being:
-
Fast: The event storming approach reduces the time it takes to create a comprehensive business domain model. What used to take weeks can be accomplished in hours during a single workshop.
-
Straightforward: Rather than using complex UML, event storming breaks the process down into simple terms that both technical and non-technical stakeholders can understand.
-
Engaging: One of the goals of event storming is to make modeling fun. It is a hands-on approach to domain modeling that invites each person to participate and interact. Besides being more enjoyable, event storming also results in more valuable insights as participants more readily engage in the process and offer their suggestions and expertise.
-
Effective: Event storming is not data modeling. Instead, it results in a fully behavioral model that can be quickly implemented and validated. For the best outcomes, teams should combine event storming with implementation oriented toward domain-driven design.
Perhaps the greatest value of event storming is in the conversations it generates. You can use the knowledge gained in the workshop to inform your future modeling processes and build software from them, or you can simply use event storming to better understand your business processes and make better decisions going forward.
Steps of event storming
Event storming has evolved over time, and there are various iterations and approaches you could take. The following steps make up the original basic outline of an event storming workshop. However, you can easily adapt the process to your own needs and goals.
1. Invite the right people
Unlike traditional modeling processes that often rely on a small group or an individual developer to map out data, behavior, and objects, event storming depends on a larger group (at least six to eight people) to workshop the domain model together.
For event storming to be successful, you need the right people to participate.
Who are the right people?
According to Brandolini, they are the people who know the right questions to ask and the ones who have the answers. This group will likely be a mixture of stakeholders representing user experience, business, architecture, development, and IT.
2. Provide unlimited modeling space
The beauty of the workshop approach is its simplicity. The goal is to get on paper (usually color-coded sticky notes) each significant event and process in one big map. To do this, you will need a large modeling space that allows your team to continue building on the process as questions and ideas arise without being limited in scope by the physical workspace.
Traditionally, this approach has been applied with sticky notes on a wall. However, programs like Lucidchart eliminate the concern for adequate space (and the need to have stakeholders all in the same room) by taking the process virtual. Lucidchart has an unlimited canvas workspace that allows real-time collaboration from multiple team members, even those who work remotely or in separate locations.
By focusing on the task at hand, stakeholders can work out the processes in an agile way without getting bogged down in complicated language and complex mapping structures.
3. Explore the business domain
Now for the meat-and-potatoes part of the workshop. Together the group explores the business domain to unveil a comprehensive process. There are three main components of the event storming model: domain events, commands, and aggregates.
Identify domain events
The first step is to begin identifying events. Events are “things that happen” in a process or system. Important events trigger reactions, so understanding the causal event can help you understand how the system operates and why. Keep in mind that events are always noted in the past tense.
To mark an event on your timeline, use an orange sticky note (or whatever color code you’ve agreed on). In Lucidchart, you can apply the same traditional color coding and shapes to customize the process flow.
As your team adds events to the canvas, start organizing them in sequential order over time.