Using EventStorming to drill into domain modelling complexity: from the big picture into the design of aggregates, processes and read models. A different approach to enterprise software modelling.
7. ABOUT ME
• Started coding in 1982
• Entered DDD in 2005
• Met Eric
• Started Avanscoperta
• Met Greg
• Event-Based Modelling in 2012
• Blast during Vaughn’s tour
• EventStorming in 2013
• Started EventStormers community
• 348 members (on Google+)
20. ARE WE SOLVING THE RIGHT PROBLEM?
CALL IT “CORE”, CALL IT “BOTTLENECK”…
… PEOPLE WILL “TELL” YOU WHAT THE REAL PROBLEM IS
AND PLEASE READ “THE GOAL” IF YOU HAVEN’T
22. WHERE DETAILS ARE MAKING A DIFFERENCE…
IN THE CORE DOMAIN…
• Creative
• Always looking for alternatives
• Continuously refining solutions
• Perfectionist
23. IN A FIXED-BUDGET NON-CRITICAL PART OF THE DOMAIN
SOMEWHERE ELSE
• Creative
• Always looking for alternatives
• Continuously refining solutions
• Perfectionist
TROUBLEMAKER
27. NOT EVERY BATTLE IS WORTH FIGHTING
OUTCOMES
• We’re on a problem worth solving:
• let’s prototype a solution right now!!
• Ouch! …the real problem is somewhere else.
• Fine, let’s use the money more wisely.
• Ouch! …they can’t even agree on the problem…
• Shake hands, smile, and leave quietly.
30. • The involved Domain Experts
• The Development Team (including UX)
• a Facilitator
• Unlimited Modelling Space
• Unlimited Surface
• Unlimited Supply of markers, stickies and so on
• We’ll have only to take care of our limited Energy.
OUR TEAM
31. TECHNICAL TRAININGS
OUR SAMPLE DOMAIN
• My Company —> We have a real domain expert here…
• Public & Private Training and workshops, (plus coaching
&mentoring).
49. • Can we transfer it?
• Good question. In fact this never happen
with individual purchases, they usually ask for
a refund, or if they can reuse the ticket with a
different edition of the same training class.
• What can happen instead is companies,
buying a group ticket, asking to switch
people, or delaying actual participant names
till he very last moment.
50. • Can we transfer it?
• Good question. In fact this never happens
with individual purchases, they usually ask for
a refund, or if they can reuse the ticket with a
different edition of the same training class.
• What can happen instead is companies,
buying a group ticket, asking to switch
people, or delaying actual participant names
till he very last moment.
56. • There’s no need for any automatic operation.
It only happened once. Doing it manually
(whatever that means) is fine.
57. • Talking with the right people, we
might get the answers we like.
• The complexity is in the domain,
it’s just not necessarily worth
implementing.
61. THINKING ABOUT BEHAVIOUR…
Scheduled
Base Price defined
Sales Opened
Confirmed
Cancelled
Sold out
Delivered
Replanned
Planned
Signed off
Scheduled
Delivered
PRIVATE PUBLIC
NOT ALIKE
67. POLICY IS A GOOD NAME FOR IT
BUT YOU CAN FIND ALSO “PROCESS” OR “THE WHENEVER BOX”
68. DO WE REALLY NEED THAT?
LET’S ASK THE DOMAIN EXPERT
• Aren’t they the same thing?
• Not at all. We need to add the trainer to the participants. Room
capacity and coffee breaks plus lunch are based on the total
number of people in the class.
• Moreover: the trainer might bring a co-trainer, the company can
have an internal person in the class, or there can be “guests”
that are not passing through the ticketing system.
• We’re currently creating “fake tickets” for everybody in order
to have all participants in the same container, but one single
mistake and everything fall apart.
78. NO. THE REAL PROBLEM IS…
DAMN, WE WERE JUST WANDERING…
79. (A) REAL PROBLEM
• We were stuck in go/no-go decisions
• Collaborators didn’t know whether to cancel or confirm the class
• I needed to explain my decision making process.
80. “WHAT IS THE DATA
NEEDED IN ORDER TO
TAKE THIS DECISION?”
85. SO MANY WAYS
HOW CAN WE IMPLEMENT IT?
• Projections
• Composite UIs (including mashups)
• Denormalisation
• Good old queries (not forbidden, just
uncool)
91. THIS IS A PIZZA. IT IS
FOOD, THAT PROVIDES
THE CALORIES AND THE
ENERGY YOU NEED IN
ORDER TO SURVIVE TILL
THE NEXT MEAL. IT IS
AVAILABLE IN SEVERAL
SIZES AND TOPPINGS.
CONTACT US IF YOU
WANT TO KNOW MORE.