SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
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
10.
Outcome (big Picture):
The whole process visible
Massive learning
Critical areas highlighted
11.
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
12.
EventStorming
blends lean and
Theory of
constraints into
Software
Development and
Domain-Driven
Design
13.
EventStorming
blends lean and
Theory of
constraints into
Software
Development and
Domain-Driven
Design
14.
EventStorming
blends lean and
Theory of
constraints into
Software
Development and
Domain-Driven
Design
15.
Quick recap of
Theory of
Constraints
Focusing on Bottleneck only
16.
Bottleneck
Main Constraint for a system
throughput
17.
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
23.
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…
24.
Biases??
All the possible ones!
I’ve seen only scenarios where I was
invited…
29.
Let’s look deeper
Aggregate
Policy / Process
Domain Event
Command
External
System
30.
Let’s look deeper
Here is where the
system is making
decisions:
Aggregate
Policy / Process
Domain Event
Command
External
System
31.
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
32.
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
33.
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
34.
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
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
#BusinessProcesses
#Transactions
#SWArchitecture
37.
Let’s look deeper
Here is where the
USER is making
decisions:
Command/
Decision
User/
Actor/
Persona/…
User
Interface
38.
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
39.
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
40.
Let’s look deeper
Domain
Event
Read Model
User
Interface
41.
Let’s look deeper
Domain
Event
Read Model
User
Interface
Here is were we
transform raw data
into readable
meaningful
information
42.
Let’s look deeper
Domain
Event
Read Model
User
Interface
Here is were we
transform raw data
into readable
meaningful
information
#BusinessIntelligence
#Readability
62.
The solution
A Draft Model with
loose integrity
constraints
63.
The solution
A Draft Model with
loose integrity
constraints
Constraints
implemented as
warnings
64.
The solution
A Draft Model with
loose integrity
constraints
Constraints
implemented as
warnings
A Validation barrier (constraints
implemented as blockers)
65.
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
68.
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
70.
Oversimplified, but…
1) Sketch a logical
separation of
bounded contexts
71.
Oversimplified, but…
1) Sketch a logical
separation of
bounded contexts
2) Define a local copy of
the draft BC: only a few
operations required
72.
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
73.
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
80.
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”
81.
Identify the right
bounded contexts
as early as
possible
…model & linguistic boundaries only…
In greenfield….
94.
Or, more explicitly…
Evolution here will
have a lot less
ripple effects… a
safer place to
improve!
95.
Or, more explicitly…
Evolution here will
have a lot less
ripple effects… a
safer place to
improve!
And here situation
is better too…
96.
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
97.
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
98.
Smell is a good
driver if you have
no idea where the
money is
99.
Refactoring danger zone
In code:
Dependencies
Compiler
Tests
In the database
A lot harder to know who will be
affected
100.
It’s not the
cleanup, it’s the
associated risk
It takes only one violation to get into “We have no idea” zone
101.
There’s asymmetry
in refactoring
documentation…
105.
found the bottleneck, now what?
Write some documentation?
106.
found the bottleneck, now what?
Write some documentation?
Call another meeting?
107.
found the bottleneck, now what?
Write some documentation?
Call another meeting?
Let’s think about it!
108.
found the bottleneck, now what?
Write some documentation?
Call another meeting?
Let’s think about it!
109.
found the bottleneck, now what?
Write some documentation?
Call another meeting?
Let’s think about it!
… write a prototype?
110.
found the bottleneck, now what?
Write some documentation?
Call another meeting?
Let’s think about it!
… write a prototype?
implementing a solution?
121.
The Dungeon
Master
https://medium.com/@ziobrando/the-rise-and-fall-of-the-dungeon-master-c2d511eed12f#.rtbyh8uid
(yes I am aware that this one is the Star Wars emperor)
122.
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
124.
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.
133.
Data Centric
applications are
damaging your
business
I wasn’t explicit enough
134.
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