Model storming - a different approach to collaborative model discovery (Vilnius edition)
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 2,805 views

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.

Statistics

Views

Total Views
2,805
Views on SlideShare
2,736
Embed Views
69

Actions

Likes
22
Downloads
74
Comments
0

7 Embeds 69

https://twitter.com 35
http://lanyrd.com 17
http://www.linkedin.com 11
http://www.feedspot.com 3
https://www.linkedin.com 1
http://tweetedtimes.com 1
http://feeds.feedburner.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Model storming - a different approach to collaborative model discovery (Vilnius edition) Presentation 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