Event Storming
Event Storming is a dynamic, group modeling workshop aimed at quickly exploring complex business domains. It involves gathering team members from various disciplines to brainstorm and map out all the events that occur within a domain, using sticky notes to visualise processes, domain events, commands, policies, and issues.
Goal
The primary goal of Event Storming is to facilitate a deep understanding of the system's behaviour, uncovering insights into how software can best support business processes. It aims to identify business events, how they are triggered, and their outcomes, fostering a shared understanding among team members.
Context
The real world is messy. Business domains are complex, with numerous interactions, events, and processes that can be challenging to understand fully. Event Storming helps teams break down this complexity, enabling them to identify separate bounded contexts (subdomains) and understand the key events, processes, and interactions that drive the business domain.
Inputs
Artifact | Description |
---|---|
Domain Experts | Individuals with deep knowledge of the business domain, who can provide insights and answer questions during the session. |
Customer Journey Map | A visual representation of the customer's interactions with the product or service, providing context for the event storming session. |
Outputs
Artifact | Description | Benefits |
---|---|---|
Event Model | A visual map of domain events, commands, policies, and the relationships between them, created during the workshop. | Enhances understanding of the business domain, supports better system design. |
Ubiquitous Language | A common language developed for the project, based on the domain model, used by both developers and domain experts. | Enhances communication and reduces misunderstandings between team members and stakeholders. |
Anti-patterns
Overlooking Business Complexity: Simplifying or bypassing complex business scenarios that could lead to incomplete understanding or models.
Lack of Facilitation: An effective facilitator is crucial to guide the discussion, maintain focus, and ensure all voices are heard.
Limited Participation: Encouraging participation from all relevant stakeholders ensures a comprehensive understanding of the domain.
Focus on Solutions over Understanding: The primary goal is to understand the domain, not to brainstorm solutions prematurely.