2. About me
Very hard to explain my job to my
mother
running www.avanscoperta.it
Modelling (almost) everything with
sticky notes, markers and a paper
roll.
Calling this stuff
12. More specifically…
No scope limitation (paper roll)
Exploration of boundaries (External
Systems & People)
-> The BOTTLENECK is in the picture.
-> The CORE DOMAIN is in the
picture
18. Bottleneck strategies
focus on it >>> Subordinate
everything else
improve it relentlessly
small short term improvements will
make a difference
… while you work on long term
improvements too
25. In the last 2 years
Been EventStorming in many
different situations
Different domains
large companies & small
organisations
Established business and startups
…many different countries…
…for different reasons…
32. Let’s look deeper
Here is where the
system is making
decisions:
Aggregate
Policy / Process
Domain Event
Command
External
System
33. Let’s look deeper
Here is where the
system is making
decisions:
Simple local decision
fit into Aggregates
Aggregate
Policy / Process
Domain Event
Command
External
System
34. Let’s look deeper
Here is where the
system is making
decisions:
Simple local decision
fit into Aggregates
Aggregate
Policy / Process
Domain Event
Command
External
System
35. Let’s look deeper
Here is where the
system is making
decisions:
Simple local decision
fit into Aggregates
More complex &
Reactive decision
making fits into
policies/Processes
Aggregate
Policy / Process
Domain Event
Command
External
System
36. Let’s look deeper
Here is where the
system is making
decisions:
Simple local decision
fit into Aggregates
More complex &
Reactive decision
making fits into
policies/Processes
Aggregate
Policy / Process
Domain Event
Command
External
System
37. Let’s look deeper
Here is where the
system is making
decisions:
Simple local decision
fit into Aggregates
More complex &
Reactive decision
making fits into
policies/Processes
Aggregate
Policy / Process
Domain Event
Command
External
System
#BusinessProcesses
#Transactions
#SWArchitecture
39. Let’s look deeper
Here is where the
USER is making
decisions:
Command/
Decision
User/
Actor/
Persona/…
User
Interface
40. Let’s look deeper
Here is where the
USER is making
decisions:
…which are based
upon real world
experience, and the
information available
on the screen
Command/
Decision
User/
Actor/
Persona/…
User
Interface
41. Let’s look deeper
Here is where the
USER is making
decisions:
…which are based
upon real world
experience, and the
information available
on the screen
Command/
Decision
User/
Actor/
Persona/…
User
Interface
#UX
#FrontEndDevelopment
#UIDesign
44. Let’s look deeper
Domain
Event
Read Model
User
Interface
Here is were we
transform raw data
into readable
meaningful
information
#BusinessIntelligence
#Readability
67. The solution
A Draft Model with
loose integrity
constraints
Constraints
implemented as
warnings
68. The solution
A Draft Model with
loose integrity
constraints
Constraints
implemented as
warnings
A Validation barrier (constraints
implemented as blockers)
69. The solution
A Draft Model with
loose integrity
constraints
Constraints
implemented as
warnings
A Validation barrier (constraints
implemented as blockers)
An Execution Model,
with similar data
structure, but
different behaviour
72. Epic win!
1. EventStorming Works!
2. I was right 4 years ago!!
http://www.slideshare.net/ziobrando/why-do-all-my-ddd-apps-look-the-same-vienna-2014
75. Oversimplified, but…
1) Sketch a logical
separation of
bounded contexts
2) Define a local copy of
the draft BC: only a few
operations required
76. Oversimplified, but…
1) Sketch a logical
separation of
bounded contexts
2) Define a local copy of
the draft BC: only a few
operations required
3) “Publish” the key
event, with all the
relevant data
77. Oversimplified, but…
1) Sketch a logical
separation of
bounded contexts
2) Define a local copy of
the draft BC: only a few
operations required
3) “Publish” the key
event, with all the
relevant data
4) Use the published data to
instantiate a valid object in
the execution BC
85. LEGO Entropy laws
Mixing LEGO boxes takes seconds
separating LEGO boxes takes ages
Moving a few pieces is reversible…
…until you forget
Then you loose control and call it “a
mess”
86. Identify the right
bounded contexts
as early as
possible
…model & linguistic boundaries only…
In greenfield….
100. Or, more explicitly…
Evolution here will
have a lot less
ripple effects… a
safer place to
improve!
And here situation
is better too…
101. Or, more explicitly…
Evolution here will
have a lot less
ripple effects… a
safer place to
improve!
And here situation
is better too…
1) we are reducing
the number of
people related to a
model
102. Or, more explicitly…
Evolution here will
have a lot less
ripple effects… a
safer place to
improve!
And here situation
is better too…
1) we are reducing
the number of
people related to a
model
2) we are driven by business,
not by smells
103. Smell is a good
driver if you have
no idea where the
money is
104. Refactoring danger zone
In code:
Dependencies
Compiler
Tests
In the database
A lot harder to know who will be
affected
105. It’s not the
cleanup, it’s the
associated risk
It takes only one violation to get into “We have no idea” zone
113. found the bottleneck, now what?
Write some documentation?
Call another meeting?
Let’s think about it!
114. found the bottleneck, now what?
Write some documentation?
Call another meeting?
Let’s think about it!
115. found the bottleneck, now what?
Write some documentation?
Call another meeting?
Let’s think about it!
… write a prototype?
116. found the bottleneck, now what?
Write some documentation?
Call another meeting?
Let’s think about it!
… write a prototype?
implementing a solution?
131. A few lessons
rationality doesn’t explain everything
habits, unconscious, we’re not
machines.
Passion and Pride can become
attachment
LEARNING can’t be skipped or
accelerated: sometimes things need
to be discovered again
133. Strong emotions
How would what if three lines of
your code created a million euro
hole?
Code persist, but the context is
gone
It’s how people feel, not how they
should that drives some behaviour.
143. Data Centric
applications are
damaging your
business
The only thing that keeps companies in the market is
that competitors are in the same situation…
I wasn’t explicit enough