Event Storming: From Sticky Notes to Key Decisions
Picture this: you came up with a marvellous idea for software. Perhaps it's something that will streamline administrative procedures in your company. Like storing documents and records online. Maybe it's a revolutionary app that will help you reach a new market. The sky is the limit, you're the mastermind here.
There's one problem. You need to explain how your groundbreaking solution is supposed to work. And the tech team needs to grasp your reasoning and the business perspective so they make your project happen. How to achieve it?
Ready to discover a new way to promote a deeper understanding between technical- and business-oriented people? Meet Event Storming — the tool that will finally make you speak the same language and arrive at key decisions together.
What is event storming?
Event Storming is a lightweight group modeling technique created by Alberto Brandolini. It brings stakeholders together to help them understand the business and technical issues of a software project.
During an event storming session, participants plan the project in a workshop format, visualise potential issues and solutions as a team, and identify the scope and basic architecture of the project.
It's an important step of software development as the method fosters the discussion, defines the bounded context, and makes all the people involved focused on a specific goal. It can even lead to making complex software less costly.
The cool aspect here is that you establish a technology-independent language and technology-neutral understanding of the business domain. Something all parties can feel confident about.
All of this in a straightforward, engaging, and fast manner.
How does event storming work?
The stakeholders gather together, either online or in person. Usually, the team includes developers, domain experts, and a facilitator. All participants take an active part in the meeting — brainstorming ideas and writing them down on sticky notes independently. This way, they create a vertically oriented board with a range of multicolour pieces of paper that indicate events.
The arrow drawn from left to right represents the time. Post-it notes on the left show chronologically earlier events than the ones on the right.
At this stage, it might look quite chaotic as it's the fruit of the labours of individuals. Now, it's time to join their efforts.
When all post-it notes are already on the wall, participants start to group them. The key is to combine them into common business processes or use cases.
You can think of it as a mind map that shows relationships among pieces of the whole — domain events are presented in order and grouped around questions and concerns. Each sticky note discloses important information about something that happens to the designed system. Altogether, they give everyone a collective high-level understanding of the business process.
How long is an event storming session?
There is no ultimate timeframe for an event storming session. The duration depends on the complexity of the project and domain. In some cases, it can be a one-day workshop. When you need more complex analysis, you can devote several days.
What's important is that you specify the duration of the event storming session and its goal at the very beginning and stick to your arrangements.
What’s the goal of event storming?
You can use event storming to
rapidly identify the scope and basic architecture of a software project;
gain knowledge about the process;
break the process into prime factors, like events, actors, commands, rules, and policies;
understand the business side of the project;
raise doubts at the earliest possible stage; and
choose an appropriate design of the system structure or a given business process.
Basically, Event Storming is a tool that facilitates communication between technical people and business domain experts. The goal, exact steps to achieve it, and nomenclature are flexible.
To get the best results out of Event Storming, adjust the whole process to your needs. It doesn't make sense to orthodoxly follow the rules if they prevent the two parties from reaching an agreement.
Is there a difference between the remote setting and the real-life experience when it comes to Event Storming?
Traditionally, an Event Storming session is run in person —participants use a wall, markers, and sticky notes to display their knowledge. It doesn't mean that an Event Storming workshop won't work in a remote setting.
Alberto Brandolini, the creator of Event Storming, believes that "physical modeling is (...) vastly superior to the digital format," but, in our experience, it's not necessarily true. It only depends on how you organize the workshop.
If you want to use Event Storming without leaving your house, make sure you have the right aids to do so.
For the remote sessions, we recommend using an online collaboration tool such as Miro. With its virtual whiteboard, you can easily recreate the office environment and cooperate with as many people as the workshop requires.
How do we use event storming at Evojam?
Łukasz K.: We use Event Storming for various occasions. We've scoped the lead with the help of an Event Storming workshop, which has allowed us to successfully acquire the project as a result. We treat it as an integral part of some internal projects, too. I think we're still learning to master it but, based on the results so far, I see a bright future for it. The team is enthusiastic about the technique and we can see how it improves our work.
Magda: I see even more applications of Event Storming —as for me, it is just as well suited for my own work on the analysis of a problem. It is a common language, so using it for my own needs makes it easier to present my thoughts to other people in the team later on.
Łukasz M.: Personally, I haven't had an opportunity to run an Event Storming session with clients and domain experts. So far, I've used the notation for knowledge sharing within the backend team. Also, just like Magda, I like to employ it to systematize and organize the process that I want to implement.
Where should I start?
If you want to start turning sticky notes into key decisions, consider taking an Event Storming course.
A good trainer will give you a broad perspective on the potential use cases and teach you what needs should be taken into consideration in the process. You'll also observe the results of good and bad choices made during an Event Storming session and learn how to minimize the latter.
Besides the modeling technique itself, the workshop can teach you a thing or two about communication between a tech team and a non-technical client. Turns out business-oriented people can easily get discouraged from disclosing information the developers need. Hint: using technical terms is a recipe for disaster!
To use this tool efficiently, you need a lot of practice. Only then you will stop thinking about the language and start focusing on what you want to convey. It’s just like learning any language, be it a natural or programming one. Take baby steps and you’ll become fluent. Eventually.
No time for training? Check the lectures presented by Alberto Brandolini. They're a great starting point that will equip you with theoretical knowledge.
Whatever way you end up there, try Event Storming for yourself. Both new and mature projects will benefit from this approach.
So, where is your marker?
This article was written in collaboration with Lukasz Koral (Project Manager), Lukasz Milunas (Backend Developer), and Magda Welik (Backend Developer).