Your SlideShare is downloading. ×
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Context Mapping In Action
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Context Mapping In Action

9,905

Published on

My presentation about Context Mapping at the DDD-Exchange London 19th June 2009

My presentation about Context Mapping at the DDD-Exchange London 19th June 2009

Published in: Business
2 Comments
15 Likes
Statistics
Notes
No Downloads
Views
Total Views
9,905
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
307
Comments
2
Likes
15
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Context Mapping in action Stretching the strategic Domain Driven Design toolbox to the edge alberto.brandolini@avanscoperta.it
  • 2. About me Ten years experience as a consultant, mainly in large software development projects Trainer Blogger Article Writer
  • 3. Dropped in a new project every time
  • 4. Foto del garage
  • 5. Foto del garage Whatever they told you before … reality is a lot different
  • 6. Foto del garage Whatever they told you before It’s always a mess … reality is a lot different
  • 7. Whatever they told you before … reality is a lot different
  • 8. Choosing Mentors
  • 9. Choosing Mentors
  • 10. Choosing Mentors “I’m Mr. Wolf. I solve problems.” Harvey Keitel
  • 11. “Every battle is won before it is ever fought” Sun Tzu
  • 12. “Every battle is won before it is ever fought” Sun Tzu “Tactic without strategy is noise before defeat” Sun Tzu
  • 13. 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
  • 14. A limited resource game Brain cells Time Developers Skills
  • 15. A limited resource game Brain cells Time Developers Skills
  • 16. A limited resource game Brain cells Time Developers Skills
  • 17. A limited resource game Brain cells Time Developers Skills
  • 18. A limited resource game Brain cells Time Developers Skills
  • 19. A limited resource game Brain cells Time Developers Skills
  • 20. A limited resource game Brain cells Time Developers Skills
  • 21. A limited resource game Brain cells Time Developers Skills
  • 22. A limited resource game Brain cells Time Developers Skills
  • 23. A limited resource game Brain cells Time Developers Skills
  • 24. A limited resource game Brain cells Time Developers Skills
  • 25. A limited resource game Brain cells Time Developers Skills
  • 26. A limited resource game Brain cells Time Developers Skills
  • 27. A limited resource game Brain cells Time Developers Skills
  • 28. A limited resource game Brain cells Time Developers Skills
  • 29. A limited resource game Brain cells Time Developers Skills
  • 30. A limited resource game Brain cells Time Developers Skills
  • 31. A limited resource game Brain cells Time Developers Skills
  • 32. A limited resource game Brain cells Time Developers Skills
  • 33. A limited resource game Brain cells Time Developers Skills
  • 34. A limited resource game Brain cells Time Developers Skills
  • 35. Enter Context Mapping
  • 36. Context The setting in which a word or a statement appears that determines its meaning Context
  • 37. … put in another way A context is a way to measure to which extent a vision could be effectively shared
  • 38. Relations Context A Context B
  • 39. Relations Pe o p l e of t probl e n so e ms l ve h e re ... Context A Context B
  • 40. 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
  • 41. 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!!
  • 42. Upstream Downstream Context A u d Context B
  • 43. Whatever they told you before … reality is a lot different
  • 44. Whatever theya difference if it does make told you before … reality is a lot different you’re going upstream
  • 45. National Geographic, take it away http://www.munseysbearcamp.com/ Bear_salmon2005.jpg
  • 46. 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.
  • 47. Anti Corruption Layer Flexibility: 4/5, Maintenance: 3/5 Ski!s: 3/5 Organization: 1/5
  • 48. Partnership Flexibility: 4/5, Maintenance: 2/5 Ski!s: 4/5 Organization: 5/5
  • 49. Here’s our context B ig Ba ll map of Mu d Context Context F C ! u Context A AC d pe n L d O Hos t Context u B Context Context E D
  • 50. It’s a MAP!
  • 51. File 1 The very messy company
  • 52. Scenario 1:
  • 53. Scenario 1: A shared area among projects
  • 54. Scenario 1: A shared area among projects Good Analysis team but separated from development
  • 55. Scenario 1: A shared area among projects Good Analysis team but separated from development Low interaction with the user
  • 56. Scenario 1: A shared area among projects Good Analysis team but separated from development Low interaction with the user Domain Expert
  • 57. Our game set Money Brain Time Developers Skills
  • 58. Our game set Money Brain Time Developers Skills
  • 59. Our game set Money Brain Time Developers Skills
  • 60. Our game set Money Brain Time Developers Skills
  • 61. Our game set Money Brain Time Developers Skills
  • 62. Our game set Money Brain Time Developers Skills
  • 63. Our game set Money Brain Time Developers Skills
  • 64. Our game set Money Brain Time Developers Skills
  • 65. Our game set Money Brain Time Developers Skills
  • 66. Our game set Money Brain Time Developers Skills
  • 67. The initial scenario Payments Enrollment
  • 68. The initial scenario h e ... e t or ik e f s l ag Payments ok s t Lo e c t rf pe Enrollment
  • 69. Shared Kernel Flexibility: 3/5, Maintenance: 2/5, Ski!s: 3/5, Organization: 4/5
  • 70. The initial stage Legacy Core u u d d Enrollment Payments
  • 71. Shall we go for DDD?
  • 72. Shall we go for DDD? Low starting skills
  • 73. Shall we go for DDD? Low starting skills Long term project
  • 74. Shall we go for DDD? Low starting skills Long term project Eager to learn
  • 75. Shall we go for DDD? Low starting skills Long term project Eager to learn A complex domain that calls for sophisticated modeling
  • 76. 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
  • 77. “Every battle is won before it is ever fought” Sun Tzu “Tactic without strategy is noise before defeat” Sun Tzu
  • 78. “Every battle is won before it is ever fought” Wrong question Sun Tzu “Tactic without strategy is noise before defeat” Sun Tzu
  • 79. The masterplan Legacy Core u u d d Enrollment Payments
  • 80. The masterplan Legacy Core u u d A CL d Enrollment Payments
  • 81. The masterplan Legacy Core u u d A CL d Enrollment Payments
  • 82. The masterplan Legacy Core u u d A CL d Enrollment Payments
  • 83. The masterplan Legacy Core u u d A CL d Enrollment Payments
  • 84. The masterplan Legacy Core u u d A CL d Enrollment Payments
  • 85. The masterplan Legacy Core u u d A CL d Enrollment Payments
  • 86. Scenario 1 Update:
  • 87. Scenario 1 Update: A freshly written legacy core.
  • 88. Scenario 1 Update: A freshly written legacy core. Distributed development teams
  • 89. Scenario 1 Update: A freshly written legacy core. Distributed development teams Analysis team separated from development
  • 90. Scenario 1 Update: A freshly written legacy core. Distributed development teams Analysis team separated from development Some teams closely integrated
  • 91. Scenario 1 Update: A freshly written legacy core. Distributed development teams Analysis team separated from development Some teams closely integrated Some teams completely disconnected
  • 92. 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
  • 93. 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
  • 94. ...the chaotic phase Legacy Core u u u d d d Payments Enrollment Payments
  • 95. ...the chaotic phase Legacy Core u u u d d d ACL Payments Enrollment Payments
  • 96. Big Ball of Mud Flexibility: 1/5, Maintenance: 5/5, Ski!s: 1/5, Organization: 1/5
  • 97. Exposing the bare truth Integration Legacy Core u u u d d d Payments Enrollment Payments Analysis
  • 98. Exposing the bare truth Integration Legacy Core u u u d d d ACL Payments Enrollment Payments Analysis
  • 99. 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
  • 100. Exposing the bare truth Integration Legacy Core u u u d d d Payments Enrollment Payments Analysis
  • 101. Exposing the bare truth Integration Legacy Core u u u d d d ACL Payments Enrollment Payments Analysis
  • 102. Exposing the bare truth Integration Legacy Core u u u d d d ACL Payments Enrollment Payments Analysis
  • 103. Exposing the bare truth Integration Legacy Core u u u d d d ACL Payments Enrollment Payments Analysis
  • 104. Exposing the bare truth Integration Legacy Core u u u d d d ACL Payments Enrollment Payments Analysis
  • 105. Exposing the bare truth Integration Legacy Core u u u d d d ACL Payments Enrollment Payments Analysis
  • 106. Exposing the truth
  • 107. 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
  • 108. File 2 The Strangelove Scenario M.A.D.
  • 109. Scenario 2: Large government project Many different actors involved Great development team Domain was not the primary focus of the project
  • 110. Our game set Money Brain Time Developers Skills
  • 111. Our game set Money Brain Time Developers Skills
  • 112. Our game set Money Brain Time Developers Skills
  • 113. Our game set Money Brain Time Developers Skills
  • 114. Our game set Money Brain Time Developers Skills
  • 115. Our game set Money Brain Time Developers Skills
  • 116. Our game set Money Brain Time Developers Skills
  • 117. Our game set Money Brain Time Developers Skills
  • 118. Our game set Money Brain Time Developers Skills
  • 119. Not the perfect stage for DDD Complex domain but outside our project scope Focus on technology: Reliability Security Performance
  • 120. Our Stage Agency A u X-Team (us) u Agency B u Agency C
  • 121. Our Plan pp l ie r Agency A u e r/s us t om c X-Team pe n Op e n (us) O H os t Hos t Agency B Publ i s L angu he d ag e Agency C
  • 122. Our Stage Agency A X-Team (us) Agency B “the others” Agency C
  • 123. Our Stage Agency A X-Team (us) It’s a Agency B partnership “the others” Agency C
  • 124. Photo courtesy of Rajarshi Roychowdhury
  • 125. Choosing Mentors
  • 126. Choosing Mentors “???” “Franco” Begbie
  • 127. Choosing Mentors e d a r d i s c “???” D “Franco” Begbie
  • 128. Cockfight Flexibility: 0/5, Maintenance: 5/5 Ski!s: 0/5 Organization: 0/5
  • 129. e d a r d i s c D Cockfight Flexibility: 0/5, Maintenance: 5/5 Ski!s: 0/5 Organization: 0/5
  • 130. 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
  • 131. Conformist Flexibility: 1/5, Maintenance: 4/5 Ski!s: 2/5 Organization: 2/5
  • 132. 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)
  • 133. Step 2 focus all energies to go upstream
  • 134. Step 2 focus all energies to go upstream Step 2: go upstream
  • 135. Going upstream
  • 136. Going upstream published and reliable planning
  • 137. Going upstream published and reliable planning continuous integration
  • 138. Going upstream published and reliable planning continuous integration steady pace
  • 139. Going upstream published and reliable planning continuous integration steady pace effective partnership
  • 140. Going upstream published and reliable planning continuous integration steady pace effective partnership jacket & tie
  • 141. 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
  • 142. 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
  • 143. File 3 ...Not another framework, please
  • 144. Scenario 3: Government backed (baked) project A “platform” upon which build many “services” Many different players A Family of similar projects in different locations
  • 145. Payment Services School er Services li pp Certificates Su r- me s to Down (conformist) Cu Down (conformist) Up
  • 146. Payment Services School er Services li pp Certificates Su r- me s to Down (conformist) Cu Down (conformist) Up Framework
  • 147. Payment Services School er Services li pp Certificates Su r- me s to Down (conformist) Cu Down (conformist) Up Framework
  • 148. Payment Services School er Services li pp Certificates Su r- me s to Down (conformist) Cu Down (conformist) Up Up Framework
  • 149. Payment Services School er Services li pp Certificates Su r- me s to Down (conformist) Cu Down (conformist) Up Up Up Framework
  • 150. 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
  • 151. 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
  • 152. 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
  • 153. 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
  • 154. 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
  • 155. 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!!
  • 156. 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
  • 157. … 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
  • 158. Conclusions
  • 159. Our context map Big Ba l l of Mu d Context Context F C ! u Context A AC d pe n L d O Hos t Context u B Context Context E D
  • 160. It’s a MAP!
  • 161. 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
  • 162. 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
  • 163. ...Should be easy to draw...
  • 164. ...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
  • 165. Software mirrors organizations
  • 166. Organizational Dysfunctions
  • 167. Organizational Dysfunctions Context Mapping often exposes the gap between the ideal communication flow and the real one.
  • 168. 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.
  • 169. 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?
  • 170. search - see - expose
  • 171. search - see - expose Context Mapping gave great insights allowing us to do the right thing.
  • 172. search - see - expose Context Mapping gave great insights allowing us to do the right thing. Did we discover new things?
  • 173. 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.
  • 174. 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.
  • 175. Thanks more on http://ziobrando.blogspot.com twitter: ziobrando

×