Event Storming: How to Boost Your Software Development Process with a Simple Technique?

Blog
Tags
5 June 2024
Complete Guide for CTO & IT Directors
Microservices under X-Ray Three books image Download free ebook

Event storming is a dynamic workshop technique that supports domain-driven design in software development. It can boost the team’s efficiency and reduce error risk, minimizing the back-and-forth in the development lifecycle.

If you haven’t been living under a rock, you’re probably familiar with the concept of brainstorming. It’s a widely used term for the process of generating a mess of ideas to sort them out and ultimately find the right one. Whether at work or in daily life, we all brainstorm from time to time. It’s pretty straightforward.

When organizing a cluttered living space, resolving a conflict with a neighbor, or choosing a career path, you need to explore different options and their potential consequences. Perfect solutions are not always available at hand, so it’s helpful to spark creativity and produce a slew of ideas that you can then subject to rational assessment.

The technique has probably been around for ages. It was popularized in the fifties and has been widely applied in the creative industry. Over time, it has expanded to other areas, including IT and business development.

Since gaining momentum, brainstorming has been refined and restructured many times, giving birth to a concept known as event storming – one of the most valuable techniques for problem-solving in digital business and beyond.

What is event storming? A workshop-based approach to domain-driven designing

Event storming is a lightweight, facilitated workshop-based method for discovering the underside of a technical or business process. In the context of software development, it’s a flexible, multi-stakeholder approach to exploring what’s going on in the domain (a targeted subject area) of a software program.

The method was developed by Alberto Brandolini in 2012 as a smoother alternative to the detail-intensive UML diagram technique. The core idea behind the format was to transcend silo boundaries and invite many domain experts to the table. Existing standards tended to leave valuable stakeholders out of the conversation and prioritize purely technical insights.

The projects developed in such a manner lacked agility and rapid problem-solving capacity. They were also prone to more errors later in the development life cycle. At worst, they produced effects unaligned with business objectives. The new approach provided a simple blueprint for early problem identification and maximizing positive outcomes.

Event storming is rooted in domain-driven design (DDD). It’s a software design paradigm that emphasizes adjusting software models to real-world business domains and seeks to create a shared language (the so-called ubiquitous language) between all stakeholders, including software developers, domain experts, business analysts, product owners, end users, etc.

In simple terms, DDD helps ensure the software speaks the same language as the business and solves its specific problems. Combining event storming and the DDD approach is one of the most efficient ways to build software that closely reflects the real-world workings of a particular business area – be it finance, healthcare, or e-commerce.

Event storming – how does it work?

The event storming method uses two key terms: a domain event and a domain expert. The former refers to any occurrence relevant to a domain expert – the latter being a business-focused stakeholder who brings real-world knowledge of the specific domain (e.g., finance, healthcare) to the workshop and helps ensure the model reflects actual business needs.

With its inherent flexibility event storming can take many forms. Overall, the process involves several key steps that help stakeholders achieve the desired objectives.

Gather the right people

The event storming session should involve all parties that can provide valuable input to exploring the domain in question. According to Brandolini, those are the people who know what questions to ask and the ones who can give proper answers. Such a group is typically a combination of business, IT, UX, and architecture team representatives.

Define the topic

In the first step, stakeholders should carefully define the topic they want to work on and make sure everyone is on the same page with the issue to avoid misunderstandings and focus tightly on the goal.

Create a modeling environment

Event storming is minimalist in terms of tool requirements. Everything revolves around color-coded sticky notes posted on a wide wall (if you have a remote team, use online whiteboards). Orange sticky notes cover domain events, and blue sticky notes relate to commands, which are event-causing operations. All in all, there are several categories with their usual color attributions, but you can define your own color scheme as long as it’s clear to everyone involved.

Start the “real” event storming

Now, in the third step, the proper event-storming process starts. Your team shifts to a higher gear and starts brainstorming all domain events involved in the business domain. Note all events in the past tense on sticky notes (one orange sticky note per event) and put them on a timeline, discarding all duplicates.

Connect domain events to commands

Once you have your events arranged, analyze them for causes and consequences. Define commands that triggered the events and identify the sources of commands, such as users, external systems (e.g., a payment gateway, email provider, shipping company, etc.), or internal processes. Commands typically represent how users interact with the system and are noted in the present tense, e.g., “submit your order,” “schedule an appointment,” etc.

Identify aggregates and delimit bounded contexts

Aggregates are clusters of related domain events and commands that represent the domain concepts and rules. They are closely tied to the concept of a bounded context – a distinct area of a larger domain. Each bounded context may contain one or more aggregates, encapsulating the domain logic and ensuring data integrity within that specific context.

Examples include inventory management or shipping in an e-commerce system or player management and in-game purchases in a gaming system. By identifying aggregates and their associated contexts during an even-storming workshop, your team can better understand the boundaries and relationships within the domain.

Iterate and refine

An event-storming workshop is not a linear set of one-time actions. To ensure the software implementation will fully reflect the domain, your team should explore different scenarios and continuously refine the domain model as new insights emerge. All ideas should be validated with subject matter experts and stakeholders.

Why would I need an event-storming workshop? Key benefits of event storming

Event storming offers numerous advantages for companies looking to boost efficiency and reduce superfluous expenses. Here are the essential ones.

It’s easy and fun

It’s easy to participate in and requires no technical expertise. The focus is on collaboration and problem-solving.

Common understanding

Event storming facilitates a shared understanding of the entire domain, processes, and requirements among all stakeholders, including technical and non-technical people (even outside the DDD community), reducing misunderstandings and rework in the implementation phase.

Creativity boost

Teams can explore alternative solutions together, fostering creativity and innovation and contributing to group learning.

Efficient problem solving

Visualizing problems makes them easier to grasp, while structured brainstorming provides unexpected solutions. Overall, you can use event storming to create a domain model much more efficiently than with isolated data modeling approaches.

It’s applicable for complex business domains

Event storming can help your team deal with both simple and complex challenges. It’s applicable for various purposes, also beyond software development.

The main limitations of event storming workshops to consider

Event storming is a powerful tool for leveraging domain knowledge in the software design process, but it has some essential limitations.

Limited scope

Event storming is most effective in the early design stages of the system. It might not catch all potential errors that emerge during later development phases like coding or implementation.

Too complex for large domains

An event-storming session can be too overwhelming in the case of very complex domains with numerous entities and interactions (breaking down the domain into smaller subdomains can help).

Reliance on facilitation

Managing numerous voices and sticky notes can become challenging. A skilled facilitator is crucial to keep the workshop focused and productive.

Latest Posts

Scrum: How to Work Together

With the popularity of the scrum framework among software development teams, it’s growingly important to learn how a scrum team works to meet its goals. Scrum Process Overview Scrum is an agile project management framework widely used in IT but can be applied to other fields as well. The framework facilitates the management of complex […]

/
event storming

Event Storming: How to Boost Your Software Development Process with a Simple Technique?

Event storming is a dynamic workshop technique that supports domain-driven design in software development. It can boost the team’s efficiency and reduce error risk, minimizing the back-and-forth in the development lifecycle. If you haven’t been living under a rock, you’re probably familiar with the concept of brainstorming. It’s a widely used term for the process […]

/
rails vs sinatra

Rails vs Sinatra

In the rapidly evolving world of software development, web frameworks have become essential tools for building robust and scalable web applications. These frameworks provide a structured environment that streamlines the development process, offering pre-written code, libraries, and guidelines that help developers avoid repetitive coding tasks, thus significantly enhancing productivity and ensuring best practices. Within the […]

/
android webstockets

Introduction to Android WebSocket

WebSockets have become a pivotal technology in enabling real-time communication for Android apps, offering a dynamic way to send and receive messages instantaneously. This technology facilitates a persistent connection between the client (Android app) and the server, bypassing the traditional HTTP request-response model to allow continuous data flow through a single TCP connection. The WebSocket […]

/
smart contracts audit

Introduction to Smart Contract Audits

In the blockchain world, smart contracts are key to decentralized applications (dApps), automating transactions and enforcing agreements without intermediaries. These contracts handle significant digital assets and perform crucial operations, making their security paramount. Smart contract audits are thus essential, scrutinizing the contract’s code for vulnerabilities to prevent potential security breaches. These audits are crucial for […]

/
What is Python Used for in Finance

Embracing the Essence of Scrum: The Indispensable Values for Agile Teams

In the ever-evolving landscape of project management, Agile methodologies like Scrum have become the cornerstone for many teams striving for adaptability and efficiency. While Scrum offers a comprehensive framework and great agile tools, it is the underlying values that truly breathe life into the process. During The Sprint What Scrum Value Must The Team Demonstrate […]

/
Related posts
event storming

Event Storming: How to Boost Your Software Development Process with a Simple Technique?

Event storming is a dynamic workshop technique that supports domain-driven design in software development. It can boost the team’s efficiency and reduce error risk, minimizing the back-and-forth in the development lifecycle. If you haven’t been living under a rock, you’re probably familiar with the concept of brainstorming. It’s a widely used term for the process […]

/
web app speed

Revisiting Web App Speed

The performance of a web application can either encourage or deter user interest. Businesses should prioritize performance improvements to enhance the overall user experience and maintain user interest. Let’s delve into a mixture of development optimization, marketing, and… cognitive sciences? All for the sake of providing a smooth user experience. What Is Web Application Speed? […]

/
ux writing samples

UX Writing Samples. How to Enhance Usability With Effective Microcopy?

Text is an integral part of UI design and user experience. High-quality, usability-focused copy helps engage users and turn them into customers. User experience (UX) writing is much more than a buzzword. It combines writing proficiency and inventiveness with a strong focus on user actions. The goal is to make things smooth, easy, and informative […]

/
css class override

CSS Class Override: How To Add Custom Styles The Right Way?

In CSS, class overriding allows developers and designers to control web page styles. Find out how it works and how to use it for adding custom styles. CSS (Cascading Style Sheets) is a language used to style documents written in markup languages, such as HTML, XHTML, or SVG. It defines styles for web pages and […]

/
opportunity solution trees

Opportunity Solution Trees: How to Enhance Product Discovery For Better Business Outcomes?

The opportunity solution tree is a framework supporting product discovery and achieving desired outcomes. Find out how it works and how you can leverage it for your business. Product discovery is the process companies use to identify and define the problems they aim to solve with their products or services. It’s the crucial first step […]

/
product sprint

Product Sprint For Design: Develop Ideas Fast

Markets abhor a void, and sometimes your development team or company is faced with presenting a working solution to a fresh need almost on the go. Luckily, there is a product design sprint methodology that allows your team to answer complex business questions in a surprisingly short time. What Is The Design Sprint Process? The […]

/
Talk with experts

We look forward to hearing from you to start expanding your business together.

Email icon [email protected] Phone icon +1 (888) 413 3806