Event Storming: what it is, benefits & risks
What is Event Storming?
Event Storming is a workshop-based method that helps quickly identify issues and processes in the domain of software development. Its roots reach the DDD (Domain-Driven Design) approach. It helps teams to see the big picture of the situation and reveals its complexity and status, as well as helps to clarify needs and goals.
As Event Storming accelerates group learning and finding non-standard, alternative solutions and improves teamwork efficiency, it’s commonly adopted by both startups and more mature organizations. Needless to say - it can also be truly fun, stimulating and engaging, and much more satisfying than traditional methods. And all of this can be achieved with the simplest tools you can even think of - colourful sticky notes.
What can you use Event Storming for?
- Building business modules
- Assessing the health of existing business models or products
- Defining or highlighting your project’s goals, needs, challenges
- Visualizing the potential solutions and brainstorming
- Identifying bottlenecks and areas for improvement in already existing products and processes
- Getting a shared vision or common understanding of the discussed topic.
On the contrary, Event Storming may not be suitable for creating deployment plans, designing documents, or planning the coding process, and it’s not a substitute for a UML diagram, flow chart, architecture diagram, or any other tools used in the implementation.
Event Storming is much more about improving teamwork that drives creative thinking, exchanging ideas, and running productive conversations and discussions.
Although Event Storming can be used in nearly every industry, it perfectly corresponds with the specifics of IT projects.
Benefits of Event Storming
To get a better understanding of how Event Storming can contribute to your daily work, think about the last project you completed. What did developers have to do to understand the business domain, and build the system that would correspond with the client’s needs? Most probably, they had to chat with a dozen of team members such as domain experts, architects, designers, and more. As a result, the knowledge got too diluted, distorted, and fragmented to be able to build a complete, functional model.
Event Storming can respond to these challenges and minimize the risk of misunderstandings in the project. With this method, you can accelerate communication and involve everyone in the problem-solving process.
So what are the benefits of using Event Storming in IT projects?
Common vision. The team working together can go deeper into the discussion and achieve mutual understanding, even between technical and non-technical stakeholders and participants.
Accelerated group learning. Thanks to this collaborative method, you will achieve rapid modelling without the need to become a DDD expert.
Fast development. Event Storming increases software development efficiency and helps to define goals, objectives, and principles and to form business models in a reduced time.
Boosted creativity. Event Storming drives innovation and allows for a much more inspiring product development process than standard techniques do. Integration and cooperation. Working together can be fun and help team members to achieve more. Thanks to hands-on experience, everyone can participate and interact, which leads to increasing morale in the team and more satisfying results.
Efficient problem-solving. Breaking the process down into simple terms helps to identify bottlenecks and find alternative solutions much faster.
Group learning. During the Event Storming session, everyone is involved in the process, stimulating group work and learning by doing. It also involves exchanging knowledge between domain experts.
Low costs. The process is informal and inexpensive. To organize an Event - Storming workshop, you need paper, sticky notes and pens that you can most probably find in every office.
Event Storming workshop step by step
An Event Storming session is typically a one-day event preceded by the right preparations and involving the proper people. There are obviously different approaches to the method. However, we’re gonna provide you with the information on the most classical one.
At Amsterdam Standard, we typically start the workshop with a short discussion about the purpose of the session. We ensure that all participants are prepared to use the technique and have the essential knowledge. We start with pre-defining the problem and the flow of the session. With the right preparations, we usually manage to map the complete business process during a single workshop.
How to make the Event Storming process effective?
1. Right people
The people involved in the Event Storming session are:
Participants. The process must involve both domain experts and people who came to ask questions and be based on cross-department cooperation. Typical participants are C-level employees, stakeholders, business domain representatives, managers, developers, team leaders, designers, and testers, depending on the project’s specifics and objectives. Everyone should be equally engaged, related to the problem, and able to contribute. This usually means involving 6-8 people on average.
The facilitator. To keep an Event Storming session effective, it needs to be led by an experienced facilitator or trainer who plays an essential role in the process. They provide participants with instructions and moderate the entire workshop to make it smooth, clear, and valuable. What’s important, they don’t disrupt the process and don’t interrupt the participants’ vision but only control the flow and make sure it goes in the right direction.
2. Right space
To run an effective Event Storming process, you must prepare the working space.
Start with collecting multicolour sticky notes, markers, and a big piece of paper or a vertically oriented flipchart that will allow you to arrange the notes on the timeline. Make sure you have enough working space, and that you will not be limited by the dimension of the room or paper - as you will prepare a big map containing ideas, expressions, and questions written on sticky notes, the modelling space should be as big as possible. We also advise removing chairs and tables.
Let’s also shortly discuss the colours of sticky notes. To make the process effective, they should appear in different shades. Of course, you can agree on your own colour code within your team, but the most basic colours used in Event Storming are orange, blue, and green. To add more context to the model, you can also use yellow, purple, pink, or red. So, ensure you have enough sticky notes in different colours before setting up the place.
3. Right communication
The language of communication during an Event Storming workshop should be as clear as possible and understandable to everyone.
For example, if you typically work with developers, but for this specific project, you need to engage stakeholders without technical knowledge, make sure that your team members will be understood. To ensure this, avoid technical jargon or explain the most important keywords right before the process.
4. Business domain
A good understanding of the business domain is essential in effective Event Storming sessions. There are three main components of the Event Storming model that help to break down the discussed problem:
Events. Identifying domain events is the first step in the process. Domain events are all events that happen and trigger reactions. This step helps to understand the principles and functionality of the designed processes or system and is a critical step of the Event Storming session.
The events, defined and written down on sticky notes, should be then organized in chronological or sequential order on the timeline. The recommended colour of the sticky note is orange, and the phrases should be formed in the past tense to highlight that there are events that actually happened.
The examples of events are:
- An account was created.
- An e-mail was sent.
- Tickets are sold out.
- The payment was completed.
Commands. Once you have your domain events defined, it’s time to evaluate each of them and find answers to the question: why did this event occur? Evaluating each of them will help you to define their causes and the factors that triggered them called commands. They can also represent user interactions with the designed system and are typically written on blue sticky notes.
The examples of commands are:
- Create account.
- Send e-mail.
- Sell tickets.
- Complete payment.
Reactions. The next step in the process is writing down what will happen due to previously defined events. They are put on green sticky notes in the future or present tense.
Examples of the reactions are:
- Creating account results in sending a confirmation e-mail.
- Sending e-mail results in confirming the participation.
- Selling the results of the ticket in blocking the reservation system.
- Completing the payment results in sending an e-book.
Combining events, commands, and reactions helps to map the processes and visualize the functionality of the system.
5. Domain-driven design
The next step of an Event Storming session is creating a domain-driven design. This part is optional but can help you to define the structure of the system and make further implementation easier and more smooth. In simple words, the previously created modules can now be grouped by using boxes, circles, and arrows that provide context for sticky notes.
For example, you can group together the events and reactions related to automated messages sent by the e-mail marketing system and then define how they are linked to digital advertising, payments, shipping options, etc. Thanks to this, all participants will be able to see how modules interact with each other, influence the flow of the process, and will be able to develop the full visual picture of the system’s functionality.
The Summary
As you can see, Event Storming is a simple but effective method that can accelerate teamwork, contribute to the product designing process, and bring significant value to the business domain.
At Amsterdam Standard, we incorporate various innovative methods daily while developing projects for our clients. We also offer training for eager developers in Event Sourcing.