Model storming - a different approach to collaborative model discovery (Vilnius edition)

  • 2,592 views
Uploaded on

Many complex problems aren't properly managed because they aren't properly seen. To visualise them you need a lot of space and unusual techniques that help you model the unknown, in an interactive and …

Many complex problems aren't properly managed because they aren't properly seen. To visualise them you need a lot of space and unusual techniques that help you model the unknown, in an interactive and extremely productive fashion.

More in: Business , Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,592
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
79
Comments
0
Likes
23

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. avanscoperta Model Storming A different approach to collaborative model discovery @ziobrando #buildstufflt #modelstorming #eventstorming
  • 2. About me About me @ziobrando @ziobrando ! I do something else instead avanscoperta
  • 3. About me About me @ziobrando DDD enthusiast @ziobrando ! I do something else instead avanscoperta
  • 4. About me About me @ziobrando DDD enthusiast @ziobrando Post-it addicted ! I do something else instead avanscoperta
  • 5. About me About me @ziobrando DDD enthusiast @ziobrando Post-it addicted Visual something else instead I do thinker ! avanscoperta
  • 6. About me About me @ziobrando DDD enthusiast @ziobrando Post-it addicted Visual something else instead I do thinker Chaos summoner ! avanscoperta
  • 7. About me About me @ziobrando DDD enthusiast @ziobrando Post-it addicted Visual something else instead I do thinker Chaos summoner Idea thief ! avanscoperta
  • 8. About me About me @ziobrando DDD enthusiast @ziobrando Post-it addicted Visual something else instead I do thinker Chaos summoner Idea thief …never satisfied avanscoperta !
  • 9. Part 1: My insanely ambitious starting point
  • 10. Typical enterprise architecture is flawed
  • 11. pl i Ap io n c at Ap pl i D at a ba se ca io n n t ca io io n i pl at c at Ap l ic pl i pp Ap A pp A tio on ti ca li pl i Ap io n at c n l ic pp A on ti a D at a ba se Typical enterprise architecture is flawed © Alberto Brandolini 2013
  • 12. Too much coupling
  • 13. patches don’t help
  • 14. Some folks call this a “model”
  • 15. So you want to speak the “Ubiquitous Language”, you scumbag? ©  Alberto  Brandolini  2009 011
  • 16. So you want to speak the “Ubiquitous Language”, you scumbag? The only ubiquitous language is SQL! Every Database speaks it! ©  Alberto  Brandolini  2009 011
  • 17. Managing conflicting requirements is always a pleasure © Alberto Brandolini 2013
  • 18. So we have trade offs © Alberto Brandolini 2013
  • 19. © Alberto Brandolini 2013
  • 20. When will we start refactoring? © Alberto Brandolini 2013
  • 21. When will we start refactoring? Mañana!! © Alberto Brandolini 2013
  • 22. Problem checklist Typical enterprise software architecture is flawed Data driven No bounded contexts Conflicting requirements lead to trade-off solutions that ultimately clog our system The ever needed refactoring is always scheduled for the next week
  • 23. Principle #1 The fastest way to remove crap from your system is… © Alberto Brandolini 2013
  • 24. To put NO CRAP into your system
  • 25. Paratroopers © Alberto Brandolini 2013
  • 26. Paratroopers Move towards the taleban area © Alberto Brandolini 2013
  • 27. Paratroopers Move towards the taleban area But this is Arizona… © Alberto Brandolini 2013
  • 28. Paratroopers Move towards the taleban area Let’s iterate! But this is Arizona… © Alberto Brandolini 2013
  • 29. There’s nothing wrong with “embrace change”, but…
  • 30. The starting point matters
  • 31. Ignorance is the single greatest impediment to throughput. Dan North http://dannorth.net/2010/08/30/introducing-deliberate-discovery/
  • 32. Learning is the constraint Dan North http://dannorth.net/2010/08/30/introducing-deliberate-discovery/
  • 33. Coding 20cl, learning 20cl, deciding 20cl, waiting...
  • 34. When doing DDD...
  • 35. Software development is a learning process Working code is a side effect
  • 36. Can we accelerate learning?
  • 37. Part 2: Teach a man to fish
  • 38. Why don’t you put all of them in the same room? A simple solution Put
  • 39. A simple solution Put all the key stakeholders in the same room and sketch a model together © Alberto Brandolini 2013
  • 40. That will never work
  • 41. Reasons why this is a bad idea
  • 42. Reasons why this is a bad idea Too expensive to get all the key people in the same room at the same time
  • 43. Reasons why this is a bad idea Too expensive to get all the key people in the same room at the same time The meeting will be totally non productive
  • 44. Reasons why this is a bad idea Too expensive to get all the key people in the same room at the same time The meeting will be totally non productive Disagreement will turn into a fight
  • 45. Reasons why this is a bad idea Too expensive to get all the key people in the same room at the same time The meeting will be totally non productive Disagreement will turn into a fight The meeting will be boring
  • 46. Reasons why this is a bad idea Too expensive to get all the key people in the same room at the same time The meeting will be totally non productive Disagreement will turn into a fight The meeting will be boring They won’t come again
  • 47. Reasons why this is a bad idea Too expensive to get all the key people in the same room at the same time The meeting will be totally non productive Disagreement will turn into a fight The meeting will be boring They won’t come again They’ll blame me
  • 48. Solution #1
  • 49. 1. Designate a scapegoat 2. Let him call the meeting ©  Alberto  Brandolini  2009
  • 50. Solution #2 Break some assumptions
  • 51. Implicit assumptions
  • 52. Implicit assumptions The meeting will happen around a table
  • 53. Implicit assumptions The meeting will happen around a table When one person speaks many will be bored
  • 54. Implicit assumptions The meeting will happen around a table When one person speaks many will be bored When many person speak nobody will understand
  • 55. Implicit assumptions The meeting will happen around a table When one person speaks many will be bored When many person speak nobody will understand We’ll talk about technical things
  • 56. Implicit assumptions The meeting will happen around a table When one person speaks many will be bored When many person speak nobody will understand We’ll talk about technical things I’ll have to bring my smartphone with me
  • 57. That’s how I run meetings
  • 58. The challenge Can we run a meeting worth more than the hourly cost of the participants? © Alberto Brandolini 2013
  • 59. Event Storming!
  • 60. © Alberto Brandolini 2013
  • 61. Yes, I mean that much space...
  • 62. My best friend © Alberto Brandolini 2013
  • 63. And… no table.
  • 64. It’s no fun to just watch others play
  • 65. Events are precise
  • 66. Event are meaningful
  • 67. We’re getting to the aggregates outside-in
  • 68. Observe people
  • 69. Observe people © Alberto Brandolini 2013
  • 70. Observe people help those who are not participating © Alberto Brandolini 2013
  • 71. Observe people help those who are not participating remove impediments and bottlenecks © Alberto Brandolini 2013
  • 72. Observe people help those who are not participating remove impediments and bottlenecks Spot the ones who don’t belong here © Alberto Brandolini 2013
  • 73. Observe people help those who are not participating remove impediments and bottlenecks Spot the ones who don’t belong here Spot the ones that care © Alberto Brandolini 2013
  • 74. Observe people help those who are not participating remove impediments and bottlenecks Spot the ones who don’t belong here Spot the ones that care Manage conflicts © Alberto Brandolini 2013
  • 75. I love conflicts here… © Alberto Brandolini 2013
  • 76. © Alberto Brandolini 2013
  • 77. Or we can simply put a RED Marker ©  Alberto  Brandolini  2009
  • 78. There’s nothing wrong in learning stuff faster
  • 79. This summer…
  • 80. A little community Started experimenting © Alberto Brandolini 2013
  • 81. A little community Started experimenting @mathiasverraes © Alberto Brandolini 2013
  • 82. A little community Started experimenting @mathiasverraes @heimeshoff © Alberto Brandolini 2013
  • 83. A little community Started experimenting @mathiasverraes @heimeshoff @andreabalducci © Alberto Brandolini 2013
  • 84. A little community Started experimenting @mathiasverraes @heimeshoff @andreabalducci @tojans © Alberto Brandolini 2013
  • 85. A little community Started experimenting @mathiasverraes @heimeshoff @tjaskula @andreabalducci @tojans © Alberto Brandolini 2013
  • 86. A little community Started experimenting @mathiasverraes @heimeshoff @tjaskula @andreabalducci @tojans @yreynhout © Alberto Brandolini 2013
  • 87. A little community Started experimenting @mathiasverraes @heimeshoff @tjaskula @andreabalducci @tojans @yreynhout @alessandrocolla © Alberto Brandolini 2013
  • 88. A little community Started experimenting @mathiasverraes @heimeshoff @tjaskula @andreabalducci @tojans @yreynhout @jefclaes @alessandrocolla © Alberto Brandolini 2013
  • 89. A little community Started experimenting @mathiasverraes @heimeshoff @tjaskula @andreabalducci @tojans @yreynhout @jefclaes @alessandrocolla @lorenzomassacci © Alberto Brandolini 2013
  • 90. A little community Started experimenting @mathiasverraes @heimeshoff @tjaskula @andreabalducci @sleli @tojans @yreynhout @jefclaes @alessandrocolla @lorenzomassacci © Alberto Brandolini 2013
  • 91. And the experiments worked! © Alberto Brandolini 2013
  • 92. And the experiments worked! “This is awesome!” © Alberto Brandolini 2013
  • 93. And the experiments worked! “This is awesome!” “For the first time, developers started asking the right questions!” © Alberto Brandolini 2013
  • 94. And the experiments worked! “This is awesome!” “For the first time, developers started asking the right questions!” “We turned the model into implementation on the same afternoon” © Alberto Brandolini 2013
  • 95. And the experiments triggered new ideas © Alberto Brandolini 2013
  • 96. And the experiments triggered new ideas “Let’s use it to set up our Kanban board!” © Alberto Brandolini 2013
  • 97. And the experiments triggered new ideas “Let’s use it to set up our Kanban board!” “is there a UX version of the workshop?” © Alberto Brandolini 2013
  • 98. And the experiments triggered new ideas “Let’s use it to set up our Kanban board!” “is there a UX version of the workshop?” “How can we use this to steer implementation?” © Alberto Brandolini 2013
  • 99. And the experiments triggered new ideas “Let’s use it to set up our Kanban board!” “We used a different “is there a UX version set of rules” of the workshop?” “How can we use this to steer implementation?” © Alberto Brandolini 2013
  • 100. © Alberto Brandolini 2013
  • 101. © Alberto Brandolini 2013
  • 102. Part 4: Model Storming or Meta fishing
  • 103. I know, Part 3 is missing…
  • 104. Why does this work?
  • 105. My secret weapon?
  • 106. My secret weapon?
  • 107. What is Model Storming? © Alberto Brandolini 2013
  • 108. What is Model Storming? Unlimited Modeling Space © Alberto Brandolini 2013
  • 109. What is Model Storming? Unlimited Modeling Space Iterative notation © Alberto Brandolini 2013
  • 110. What is Model Storming? Unlimited Modeling Space Iterative notation Simple Gaming Rules © Alberto Brandolini 2013
  • 111. What is Model Storming? Unlimited Modeling Space Iterative notation Simple Gaming Rules Active Collaboration © Alberto Brandolini 2013
  • 112. What is Model Storming? Unlimited Modeling Space Iterative notation Simple Gaming Rules Active Collaboration Addressing Complexity © Alberto Brandolini 2013
  • 113. What is Model Storming? Unlimited Modeling Space Iterative notation Simple Gaming Rules Active Collaboration Addressing Complexity Everything is visible © Alberto Brandolini 2013
  • 114. What is Model Storming? Unlimited Modeling Space Iterative notation Simple Gaming Rules Active Collaboration Addressing Complexity Everything is visible Supporting divergence © Alberto Brandolini 2013
  • 115. What is Model Storming? Unlimited Modeling Space Iterative notation Simple Gaming Rules Active Collaboration Addressing Complexity Everything is visible Supporting divergence Decide later © Alberto Brandolini 2013
  • 116. Unlimited Modeling Space My problem is... © Alberto Brandolini 2013
  • 117. Unlimited Modeling Space My problem is... BIGGER © Alberto Brandolini 2013
  • 118. You know why people call it “the big picture?”
  • 119. Conquer first Divide later
  • 120. Guerrilla modeling © Alberto Brandolini 2013
  • 121. © Alberto Brandolini 2013
  • 122. Unlimited surface © Alberto Brandolini 2013
  • 123. Unlimited surface You don’t know the size of the problem before exploring it © Alberto Brandolini 2013
  • 124. Iterative notation © Alberto Brandolini 2013
  • 125. Iterative notation Choose one significant aspect © Alberto Brandolini 2013
  • 126. Iterative notation Choose one significant aspect Find the simplest possible notation to represent it © Alberto Brandolini 2013
  • 127. Iterative notation Choose one significant aspect Find the simplest possible notation to represent it Choose the next aspect to model © Alberto Brandolini 2013
  • 128. Active Collaboration All participant should actively contribute © Alberto Brandolini 2013
  • 129. One Man One Marker © Alberto Brandolini 2013
  • 130. © Alberto Brandolini 2013
  • 131. Tell us whatever you want © Alberto Brandolini 2013
  • 132. Gamification!
  • 133. © Alberto Brandolini 2013
  • 134. Our brain... http://www.wpclipart.com/medical/anatomy/brain/four_lobes_of_the_cerebral_cortex.png.html
  • 135. System 1
  • 136. System 1 Quick pattern matching
  • 137. System 1 Quick pattern matching Parallel processing, unaware mode
  • 138. System 1 Quick pattern matching Parallel processing, unaware mode Low energy consumption
  • 139. System 1 Quick pattern matching Parallel processing, unaware mode Low energy consumption System 2
  • 140. System 1 Quick pattern matching Parallel processing, unaware mode Low energy consumption System 2 Complex elaboration that need attention and concentration
  • 141. System 1 Quick pattern matching Parallel processing, unaware mode Low energy consumption System 2 Complex elaboration that need attention and concentration No parallelism
  • 142. System 1 Quick pattern matching Parallel processing, unaware mode Low energy consumption System 2 Complex elaboration that need attention and concentration No parallelism High energy consumption
  • 143. Maybe there’s a reason for that
  • 144. Let’s examine carefully every possibility
  • 145. System 1 Quick pattern matching Parallel processing, unaware mode Low energy consumption System 2 Complex elaboration that need attention and concentration No parallelism High energy consumption
  • 146. System 1 Quick pattern matching Parallel processing, unaware mode Low energy consumption System 2 Complex elaboration that need attention and concentration No parallelism High energy consumption It’s the same class!
  • 147. System 1 Quick pattern matching It’s the same class! Parallel processing, unaware mode Low energy consumption System 2 Complex elaboration that need attention and concentration No parallelism High energy consumption It’s obvious!
  • 148. System 1 Quick pattern matching It’s the same class! Parallel processing, unaware mode Low energy consumption System 2 Complex elaboration that need attention and concentration No parallelism High energy consumption It’s obvious! Let’s consider Bounded Contexts
  • 149. System 1 Quick pattern matching It’s the same class! Parallel processing, unaware mode Low energy consumption System 2 Complex elaboration that need attention and concentration No parallelism High energy consumption It’s obvious! Let’s consider Bounded Contexts Let’s see the whole
  • 150. Our brain © Alberto Brandolini 2013
  • 151. Our brain Quick in pattern matching © Alberto Brandolini 2013
  • 152. Our brain Quick in pattern matching (and unaware of it) © Alberto Brandolini 2013
  • 153. Our brain Quick in pattern matching (and unaware of it) Provides inferior solutions under pressure © Alberto Brandolini 2013
  • 154. Our brain Quick in pattern matching (and unaware of it) Provides inferior solutions under pressure Tries to avoid complexity © Alberto Brandolini 2013
  • 155. Our brain Quick in pattern matching (and unaware of it) Provides inferior solutions under pressure Tries to avoid complexity Gets hooked by games © Alberto Brandolini 2013
  • 156. © Alberto Brandolini 2013
  • 157. © Alberto Brandolini 2013
  • 158. Can you walk by without completing? © Alberto Brandolini 2013
  • 159. © Alberto Brandolini 2013
  • 160. And, by the way, playing is how we learn better © Alberto Brandolini 2013
  • 161. Icebreakers needed
  • 162. Deferring decisions Implicit choices There’s nothing *right* yet No legacy © Alberto Brandolini 2013
  • 163. Embrace Fuzzyness (temporarily)
  • 164. It will compile
  • 165. I promise
  • 166. © Alberto Brandolini 2013
  • 167. Addressing Complexity Data first, structure later…
  • 168. Everybody is partitioning the system
  • 169. I just like taking a detour first...
  • 170. Visual representation UML is too complex to support a meaningful conversation! ! Whiteboards won’t compile anyway © Alberto Brandolini 2013
  • 171. Visualize everything © Alberto Brandolini 2013
  • 172. © Alberto Brandolini 2013
  • 173. © Alberto Brandolini 2013
  • 174. Visualize everything Legend and Notation Requirements and solution Solutions Disagreement Context ... © Alberto Brandolini 2013
  • 175. Keep the cognitive load small
  • 176. Design the workshop User Experience
  • 177. Exploring Guys, we’re doing this one really badly © Alberto Brandolini 2013
  • 178. Brainstorming rules “We need at least 3 bad ideas” © Alberto Brandolini 2013
  • 179. Short timeboxes throwaway code ...more ;-) coderetreat.org
  • 180. coderetreat.org
  • 181. coderetreat.org
  • 182. coderetreat.org
  • 183. coderetreat.org
  • 184. coderetreat.org
  • 185. coderetreat.org
  • 186. coderetreat.org
  • 187. coderetreat.org
  • 188. Can we tweak it?
  • 189. Modellathlon!
  • 190. Human beings are the best device ever…
  • 191. …to detect somebody else’s mistakes
  • 192. Negotiating We need a tangible enemy if there’s none ... © Alberto Brandolini 2013
  • 193. Your colleague becomes the enemy
  • 194. Negotiating implicit meaning Blah, blah, blah... ...And obviously, blah, blah... Blah, blah, blah... Ouch, he didn’t mention wah, wah... © Alberto Brandolini 2013
  • 195. A tangible artifact becomes the enemy
  • 196. Your colleague becomes your ally
  • 197. Proving Still… negotiating is waste It’s not about convincing the others... © Alberto Brandolini 2013
  • 198. Those are learning cycles
  • 199. Watching the ceiling is forbidden!
  • 200. Scope?
  • 201. Complex problems
  • 202. Event Storming expected outcome steered towards a canonical model partially defined steps model affinity given problem type © Alberto Brandolini 2013
  • 203. Model storming unpredictable outcome no canonical model notation incremente iteratively ! no predefined problem type © Alberto Brandolini 2013
  • 204. © Alberto Brandolini 2013
  • 205. © Alberto Brandolini 2013
  • 206. Some problems are resistant to antibiotics
  • 207. It’s a fun job and somebody’s gotta do it
  • 208. Let’s go fishing!
  • 209. avanscoperta Grazie! @ziobrando ! http://ziobrando.blogspot.com/2013/11/introducing-event-storming.html http://www.avanscoperta.it