So, your business has grown and you need a good way to get a fresh perspective, assess its health or identify the most effective areas for improvement? Do you want to get an in-depth look at a new startup business model? Are you contemplating some new services and want to maximise good results for every party involved? Or maybe you need to design clean and maintainable software? If only there was a method which allowed you to step beyond the silo and specialisation boundaries, and explore complex business domains. Well, actually, there is. It’s called Event Storming and it does so by the power of… sticky notes.
The what of Event Storming
Event Storming is a flexible, lightweight workshop method created by Alberto Brandolini in the context of domain-driven design. The first part of the name refers to events, which this workshop method focuses on. The second refers to storming in the context of brainstorming or agile modeling’s model storming. Apart from a wide range of applications, one of the great advantages of this method is that the participants do not need any prior knowledge of the method itself. That is to say, they can learn all they need to know on the fly.
The how of Event Storming
First of all, you need to get the right people into the same room. Secondly, supply them with appropriate tools (sticky notes, markers and a wall of paper). Thirdly, create the right conditions for brainstorming focused on a single goal.
It starts with creating a series of domain events – verbs in their past forms – committed to orange sticky notes. Once you’ve identified all the domain events, it’s time to introduce other colors. Their selection depends on the intended format – Big Picture, Process Modelling and Software Modelling – or the level of zooming .
The magenta ones, used for Hot Spots, are common to the formats. The blue ones, for example, are placed before the corresponding domain events to identify the command which caused each of the domain events. The small yellow ones denote the users and the larger yellow ones the aggregates which cover clusters of domain objects. Further colors include green for views which users interact with in the system, violet for business processes and purple for external systems. Of course you can develop this notation further, according to the needs of your project, as long as it remains clear to all the parties involved.
The why of Event Storming
To bystanders the result is “just” a clear and comprehensive view of the modeled process. For the participants, the knowledge gained in the course of the workshop might actually be far more important. This kind of approach brings together people from different departments, stakeholders with different backgrounds, domain experts and product owners together with developers. This exchange of information is often crucial to the intended goal of the workshop. Apart from providing a clear view it also allows to identify problem spots, potential inconsistencies between different perspectives and impediments.
Alberto Brandolini originally designed Event Storming as a computer-free workshop. Going “primitive” and removing chairs from the workshop area definitely forces participants to get moving and interact more. In the case of ES meetings held online, on the other hand, it is important to remember to allow multiple conversation channels for larger groups, set peer pressure, and keep the discussed things and disagreements visible. Tools such as Draw.io (https://app.diagrams.net/) and Miro (https://miro.com/) make online Event Storming workshops much more effective. Visualisation of different variants of the same ideas certainly becomes easier with their copy/paste options.
In conclusion, Event Storming may sound simple, and to be honest it is. Yet there’s beauty in this simplicity. It’s amazing how such a simple and versatile method enables cross-perspective conversation, facilitates the learning process and still remains fun. This makes it perfect to embed in the process of software design. It brings together developers and stakeholders, resulting in greater understanding of the task at hand. After all, in the words of Alberto Brandolini “It’s developer’s (mis)understanding, not expert knowledge that gets released into production”. The time spent to ensure this understanding is never lost and Event Storming is one of the most effective ways to use it.
If you want to find out how Event Storming compares to other approaches, check out this article.