15. “Every battle is won
before it is ever
fought”
Sun Tzu
“Tactic without
strategy is noise
before defeat”
Sun Tzu
16.
17.
18.
19. Know your enemy
Code is not your enemy
Projects do not fail because of code
Standish group put interaction with the
users and requirements at the top of the
list.
… in a complex scenario, these are often
second order effects
46. Relations
Pe o p l
e of t
probl e n so
e ms l ve
h e re
...
Context A
Context B
47. Relations
Pe o p l
e of t
probl e n so
e ms l ve
h e re
...
Context A
...o r h
e re . . .
Context B
48. Relations
Pe o p l
e of t
probl e n so
e ms l ve
h e re
...
Context A
...o r h ...b u t
e re . . . the r
a re s e al s
ome w h o w-
h e re s t o pp
Context B in be
t we e e rs
n!!
52. Whatever theya difference if
it does make told you before
… reality is a lot different
you’re going upstream
53. National Geographic,
take it away
http://www.munseysbearcamp.com/
Bear_salmon2005.jpg
54. Patterns
Relations between different contexts tend
to fall into repeatable patterns
A specific pattern dictionary helps to
describe the current situation
Any pattern has a different benefits/costs
ratio.
81. Shall we go for
DDD?
Low starting skills
Long term project
82. Shall we go for
DDD?
Low starting skills
Long term project
Eager to learn
83. Shall we go for
DDD?
Low starting skills
Long term project
Eager to learn
A complex domain that calls for
sophisticated modeling
84. Shall we go for
DDD?
Low starting skills
Long term project
Eager to learn
A complex domain that calls for
sophisticated modeling
Some developers-analysts already into DDD
85. “Every battle is won
before it is ever
fought”
Sun Tzu
“Tactic without
strategy is noise
before defeat”
Sun Tzu
86. “Every battle is won
before it is ever
fought” Wrong question
Sun Tzu
“Tactic without
strategy is noise
before defeat”
Sun Tzu
97. Scenario 1 Update:
A freshly written legacy core.
Distributed development teams
Analysis team separated from development
98. Scenario 1 Update:
A freshly written legacy core.
Distributed development teams
Analysis team separated from development
Some teams closely integrated
99. Scenario 1 Update:
A freshly written legacy core.
Distributed development teams
Analysis team separated from development
Some teams closely integrated
Some teams completely disconnected
100. Scenario 1 Update:
A freshly written legacy core.
Distributed development teams
Analysis team separated from development
Some teams closely integrated
Some teams completely disconnected
No interaction with the user
101. Scenario 1 Update:
A freshly written legacy core.
Distributed development teams
Analysis team separated from development
Some teams closely integrated
Some teams completely disconnected
No interaction with the user
Fake Domain Expert
104. Big Ball of Mud
Flexibility: 1/5, Maintenance: 5/5, Ski!s: 1/5, Organization: 1/5
105. Exposing the bare
truth
Integration Legacy
Core
u u
u
d d
d
Payments
Enrollment
Payments
Analysis
106. Exposing the bare
truth
Integration Legacy
Core
u u
u
d d
d
ACL Payments
Enrollment
Payments
Analysis
107. Exposing the bare
truth
Integration Legacy
Core
u u
u
Th i t
Ub
is o u
d
iq u
d
is s
AW L a
d
FU u
ACL Payments
L ! ag
ng
Enrollment
No e
Payments
Analysis
108. Exposing the bare
truth
Integration Legacy
Core
u u
u
d d
d
Payments
Enrollment
Payments
Analysis
109. Exposing the bare
truth
Integration Legacy
Core
u u
u
d d
d
ACL Payments
Enrollment
Payments
Analysis
110. Exposing the bare
truth
Integration Legacy
Core
u u
u
d d
d
ACL Payments
Enrollment
Payments
Analysis
111. Exposing the bare
truth
Integration Legacy
Core
u u
u
d d
d
ACL Payments
Enrollment
Payments
Analysis
112. Exposing the bare
truth
Integration Legacy
Core
u u
u
d d
d
ACL Payments
Enrollment
Payments
Analysis
113. Exposing the bare
truth
Integration Legacy
Core
u u
u
d d
d
ACL Payments
Enrollment
Payments
Analysis
115. Exposing the truth
Ultimately, Sun Tzu war right:
though Entities, Value Objects, Aggregates
etc. proved successful within their scope...
...That was ultimately not relevant in the
large scale
Exposing the truth via Context Mapping
was relevant and led to major changes in
management
137. e d
a r d
i s c
D Cockfight
Flexibility: 0/5, Maintenance: 5/5 Ski!s: 0/5 Organization: 0/5
138. Didn’t need any new
pattern
Despite my idea of “getting rich selling the
Strategic DDD Expansion Set”, we didn’t
need any new pattern
Team was trapped in a Downstream
Position
“Official partnership” forced us to be
conformist to an unreliable external team
141. Step 1
Protect our
application from X-Team
external influences (us)
by introducing an ACL
Anti Corruption d
Layer (no u
Conformist any “the
others”
more)
149. Going upstream
published and reliable planning
continuous integration
steady pace
effective partnership
jacket & tie
150. Project outcome
Reversing the relationship had a positive
outcome on all relationships
Context Map exposed the right thing to do
Delivered on time and on budget
Benchmark for following projects
151. Some years later
Overall project now seen as critical:
it’s working perfectly (technology)...
...but it’s not doing the right thing.
No user-driven evolution
Importance of domain model largely
underestimated
153. Scenario 3:
Government backed (baked) project
A “platform” upon which build many
“services”
Many different players
A Family of similar projects in different
locations
154. Payment
Services
School
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up
155. Payment
Services
School
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up
Framework
156. Payment
Services
School
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up
Framework
157. Payment
Services
School
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up
Up
Framework
158. Payment
Services
School
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up Up
Up
Framework
159. Payment
Services
m i s t)
o r
o nf
School Do w
n (c
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up Up
Up
Domain
Model
Framework
160. Payment
Services
m i s t)
o r
o nf
School Do w
n (c
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up Up
Up
Domain
Model
Frameworkk
Fram ewor
161. Payment
Services
m i s t)
o r
o nf
School Do w
n (c
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up Up
Up
Domain
Model
Frameworkk
Framework
Fram ewor
162. Payment
Services
m i s t)
o r
o nf
School Do w
n (c
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up Up
Up
Domain
Model
Frameworkk
Framework
Fram ewor
163. Payment
Services
m i s t)
o r
o nf
School Do w
n (c
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up Up
Up
Domain
Model
Up
Frameworkk
Framework
Fram ewor
164. Payment
Services
m i s t)
o r
o nf
School Do w
n (c
er
Services
li
pp
Certificates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up Up
Up
Domain
Model
Up Thi s
Frameworkk
Framework
ewor sh o u defin
Fram ldn’t i te l y
be lik
e t hi
s!!
165. The plan
Consolidation of reference framework
darwinian selection of features
intensive testing
wrapping existing features with ACLs
releasing constraints on the application side
domain --> published language
freedom of choice, allowing different paradigms
166. … no outcome yet,
but...
Context mapping is driving the strategic
decision process
Map of the current situation (as far as we
know it)
Base for a pragmatic action plan
Exposes the hot spots
170. It’s a MAP
This is where battles are win before they’re
fought
Taking advantage of the landscape
concentrating our forces where it does
matter
avoiding to fight if the odds are against us
171. Not only for the
elite
Context mapping has a broader scope of
application than tactical DDD
far from ideal scenario
disconnected environments…
… you got the idea…
Might tell you whether to go for DDD or
not
173. ...Should be easy to
draw...
...but if it’s not, you’re already getting
some very useful information
Sometimes the process of gathering
information to draw the context map is
more important than the map itself
177. Organizational
Dysfunctions
Context Mapping often exposes the gap
between the ideal communication flow and
the real one.
178. Organizational
Dysfunctions
Context Mapping often exposes the gap
between the ideal communication flow and
the real one.
...and this is often in the grey area where
nobody is responsible for anything and
things simply happen.
179. Organizational
Dysfunctions
Context Mapping often exposes the gap
between the ideal communication flow and
the real one.
...and this is often in the grey area where
nobody is responsible for anything and
things simply happen.
How much does this cost to share a
vision?
181. search - see - expose
Context Mapping gave great insights
allowing us to do the right thing.
182. search - see - expose
Context Mapping gave great insights
allowing us to do the right thing.
Did we discover new things?
183. search - see - expose
Context Mapping gave great insights
allowing us to do the right thing.
Did we discover new things?
Many things were “there” simply floating
in the nobody’s land between a context
and another.
184. search - see - expose
Context Mapping gave great insights
allowing us to do the right thing.
Did we discover new things?
Many things were “there” simply floating
in the nobody’s land between a context
and another.
Context mapping helped us see the
whole picture early and clearly.