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 speciļ¬c pattern dictionary helps to
describe the current situation
Any pattern has a different beneļ¬ts/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 Cockļ¬ght
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
āOfļ¬cial partnershipā forced us to be
conformist to an unreliable external team
141. Step 1
Protect our
application from X-Team
external inļ¬uences (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
Certiļ¬cates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up
155. Payment
Services
School
er
Services
li
pp
Certiļ¬cates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up
Framework
156. Payment
Services
School
er
Services
li
pp
Certiļ¬cates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up
Framework
157. Payment
Services
School
er
Services
li
pp
Certiļ¬cates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up
Up
Framework
158. Payment
Services
School
er
Services
li
pp
Certiļ¬cates
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
Certiļ¬cates
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
Certiļ¬cates
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
Certiļ¬cates
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
Certiļ¬cates
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
Certiļ¬cates
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
Certiļ¬cates
Su
r-
me
s to
Down (conformist)
Cu
Down (conformist)
Up Up
Up
Domain
Model
Up Thi s
Frameworkk
Framework
ewor sh o u deļ¬n
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 ļ¬ght 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 ļ¬ow and
the real one.
178. Organizational
Dysfunctions
Context Mapping often exposes the gap
between the ideal communication ļ¬ow 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 ļ¬ow 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 ļ¬oating
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 ļ¬oating
in the nobodyās land between a context
and another.
Context mapping helped us see the
whole picture early and clearly.