05 Event Storming
A workshop technique to help teams dig deep and
identify we are different from everyone; you’re not really
identify our issues are so unique; not really
identify that we know what we have but can’t see a way to improve in this area
find areas of agreement
develop a clearer understanding of the environment
get team members up to speed quickly on what an application/system does
It’s all about discovery
The toolset
Post-it notes (hundreds of them)
Plotter paper stuck to a wall
Post-it notes colour coding
Here is an example of a domain event with questions that need to be answered
Here is an example of a command showing the required data, who executed the command, and the event that was triggered
Examples
Domain events
Payment requested
Payment date passed
Order fulfilled - ?is this the delivery or completion of making the order?
Seating capacity reached
Inventory exhausted
Command/Decision/Action
I'm not paying that bill triggers "Payment date passed"
Customer agrees to the terms, which triggers "Payment requested"
Customer or booking agent confirms a booking, the right conditions are met, this triggers "Seating capacity reached"
Customer purchases inventory which triggers "Inventory exhausted"
Example scenarios
Booking an event at a restaurant
You ring up a restaurant to request a table for 12 people. Because it's a large number of people, the restaurant asks you for primary dietary requirements, you state that most people eat meat, especially chicken. The restaurant asks you to confirm the booking the night before the event and before the restaurant closes
On the night before the event after the restaurant closes, the chef looks at the bookings and confirms that in the morning staff will purchase the chickens fresh.
What are the significant events, commands, and actors?
Events - table requested, booking confirmed, food purchased, event happened
Action - call made to the restaurant, go to the restaurant to eat at the time of booking, chef checks book for the day and draws up a shopping list, confirm booking night before the event
Actors - customer, chef
Refinancing the business loans
Your company decided that it needs to look at its current loans and overdrafts. After speaking to their accountants, they are advised refinancing would ease cash flow and reduce the monthly outgoings.
You speak to a company specialising in business loans (ACME Finance). They ask you about the business, current commitments, and why you need the loan. They agree in principle that they can help you, and ask you to do the following
go online and submit a loan request
submit a KYC application, without the KYC information the loan request cannot proceed
The loan request is successful, but they can't confirm the loan offer until the KYC details have been confirmed. Once the KYC details have been confirmed, a contract will be sent to the business. The directors must agree to the terms and agree to be the guarantors of the business. Once the directors have agreed the contract, the funds are released
The contract does not come into force until funds are drawn down from the loan account. You have 14 days to draw as much funds as are available to the business via the loan. After 14, and if funds have been drawn down, the payment terms come into effect. If nothing is drawn down by the end of the 14 days, the contract is voided.
What are the significant events, commands, and actors?
Use post-it notes