Misplaced Pages

Event storming

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Method for modeling software systems
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
The topic of this article may not meet Misplaced Pages's general notability guideline. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.
Find sources: "Event storming" – news · newspapers · books · scholar · JSTOR (May 2017) (Learn how and when to remove this message)
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Event storming" – news · newspapers · books · scholar · JSTOR (April 2017) (Learn how and when to remove this message)
(Learn how and when to remove this message)
An example process from an event storming

Event storming is a workshop-based method to quickly find out what is happening in the domain of a software program. Compared to other methods it is extremely lightweight and intentionally requires no support by a computer. The result is expressed in sticky notes on a wide wall.

The business process is "stormed out" as a series of domain events which are denoted as orange stickies. It was invented by Alberto Brandolini in the context of domain-driven design (DDD). Event storming can be used as a means for business process modeling and requirements engineering. The idea is to bring together software developers and domain experts and learn from each other. The name was chosen to show that the focus should be on the domain events and the method works similar to brainstorming or agile modeling's model storming.

Requirements

It is important for an event storming workshop to have the right people present. This includes people who know the questions to ask (typically developers) and those who know the answers (domain experts, product owners).

The modeling will be placed on a wide wall with a roll of paper rolled out on it. The sticky notes will be placed on this paper. You will require at least 5 distinct colors for the sticky notes.

Steps

Event storming legend of notes by their conceptual name with their associated colors and how they are laid out in relation to each other.
Step 1: Create domain events
Step 2: Add the commands that caused the domain event
Step 2b: Add the actor that executes the command
Step 3: Add corresponding aggregate

The first step is to find the domain events and write them on orange sticky notes.

When all domain events are found the second step is to find the command that caused each of the domain events. Commands are written on blue notes and placed directly before the corresponding domain event.

In the third step the aggregates within which commands are executed and where events happen are identified. The aggregates are written in yellow stickies.

The concepts gathered during an event storming session fall into several categories, each with its own colour of sticky note:

  Domain event
An event that occurs in the business process. Written in past tense.
  Actor
A person who executes a command through a view.
  Business process
Processes a command according to business rules and logic. Creates one or more domain events.
  Command
A command executed by a user through a view on an aggregate that results in the creation of a domain event.
  Aggregate
Cluster of domain objects that can be treated as a single unit.
  External system
A third-party service provider such as a payment gateway or shipping company.
  View
A view that users interact with to carry out a task in the system.

Example notes

These are examples, these would be different for different organizations.

Domain events

  AccountCreated   AccountDeleted   OrderCreated

Actors

  Guest   Registered user   Administrator

Commands

  CreateAccount   DeleteAccount   CreateOrder

Aggregates

  Orders   Users

External systems

  Stripe (payment provider)   Mailchimp (email provider)

Views

  Checkout   Signup

Errors

  Service provider is unreachable   Something went wrong

Example

Users CreateAccount AccountCreated Signup

Result

As a result, the business process can be seen on the modeling space. But more important is the knowledge that was built in the minds of the participants.

References

  1. ^ Brandolini, Alberto (2013-11-18). "Introducing Event Storming". Retrieved 2017-04-06.
  2. George, Chiraag (2021-07-19). "How to Design an Effective Event Storming Session". Creately Blog. Retrieved 2023-07-07.
  3. ^ Vernon, Vaughn (2016). Domain-Driven Design Distilled. Addison-Wesley. ISBN 978-0134434421.

External links

Categories: