Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Storystorming DDD Paris

Storystorming DDD Paris

Martin Schimak

March 05, 2020
Tweet

More Decks by Martin Schimak

Other Decks in Programming

Transcript

  1. Very well :-) what do you need it for? I

    need a checkbox. :-) Sandra Manager Me
  2. Ticketing screen plan available seats Customer Cashier confirms reservation available

    seats reservation number recommends asks for screen plan reservation finds seats in confirm seats in generates tells 1 2 3 4 5 6 7 Example of classical
  3. Make storytelling as simple as it really is @martinschimak "A

    story consists of sentences. A sentence consists of three basic building blocks!" Subject Predicate Object
  4. @martinschimak Time Cashier Customer asks for ticket reservation Actors finds

    seats in screen plan Ticketing System Story A B C
  5. @martinschimak Time Cashier Customer asks for ticket reservation Actors finds

    seats in screen plan Ticketing System suggests available seats Story 1 2 3 Seats are available A B C
  6. reserves rejects reservation attempt seats 14 and 15, sector A2

    Seats are not available generates reservation #THBQ, seats 14 and 15, sector A2, on June 10th suggests seats 14 and 15, sector A2 confirms seats 14 and 15, sector A2 tells reservation number #THBQ Ticketing System Stadium cashier Soccer fan calls and asks for reservation of two tickets in sector A2 on June 10th Time Actors Story A B C 1 2 3 Customer likes seats Seats in sector are available Seats are available finds seats 14, 15 in sector A2 of screen plan
  7. Time! Human Human Predicate Object Predicate Object System A B

    C 1 2 Assumed Behavior You shopped a bit too much. You need a ride! So you want to use one of those shared cars which are now parked everywhere in the city. Their app allows you to find nearby cars. When you try to open a specific car's door with your mobile's NFC, your app asks you to confirm the current mile rate of this car. When you do that the driver's door opens and you may start your ride. Your app tracks the location of the car, so when you arrive at your destination, all you need to do is to close the car from the outside with your mobile's NFC. Now your ride is finished and your card will be charged. Hands-on
  8. Time! Car sharer Predicate Object Predicate Object Car A B

    C 1 2 Assumed Behavior You shopped a bit too much. You need a ride! So you want to use one of those shared cars which are now parked everywhere in the city. Their app allows you to find nearby cars. When you try to open a specific car's door with your mobile's NFC, your app asks you to confirm the current rate per kilometer for this car. When you do that the driver's door opens and you may start your ride. Your app tracks the location of the car, so when you arrive at your destination, all you need to do is to close the car from the outside with your mobile's NFC. Now your ride is finished and your card will be charged. Hands-on Car sharing app
  9. Investigating a (quite paper-based) support process Here is the pain

    with mistakes made in requests 1 Here is the correction pain resulting from it 2
  10. Some results from EventStorming Capturing two detail "stories" 1 2

    3 Getting side-tracked :-) Considering a few deliverables 4 Discussing billing improvements for a telco provider
  11. Drafting a blockchain workflow for a steel industry startup Simple

    customer interaction scenario 1 Scenario with resellers involved 2
  12. My take on some strengths of the approach - Record

    natural language (even without immediate full understanding) - Work close to some individual's human perspective, ideal for small groups - Focus on just one single example sequence of all possible activities - Improve upon single terms and prepare your ubiquitous language (DDD) - Clarify problems and exceptions – just by adding assumptions (or events) - Discuss alternatives – just by taking a picture and rearranging stickies
  13. Basic Building Blocks Human or Group Machine or Component Object

    Verb Behavior or Constraints Object Verb Object Verb super simple storytelling for domain and software experts
  14. Basic Building Blocks Human or Group Event Command Behavior or

    Constraints Machine or Component Statement or Object Question or Search Behavior or Constraints Behavior or Constraints sophisticated storytelling for experienced teams
  15. Basic Building Blocks Kathi Filling machine with water Filling machine

    with coffee beans Brewing the coffee Taking can and filling a coffee cup Drinking the coffee Looking into the coffee pot Deciding to need more coffee
  16. Basic Building Blocks Kathi Filling machine with water Filling machine

    with coffee beans Brewing the coffee Taking can and filling a coffee cup Drinking the coffee Looking into the coffee pot Deciding to need more coffee Martin Coffee machine
  17. Looking into the coffee pot Basic Building Blocks Kathi Coffee

    machine Coffee brewed Martin "Make us some coffee" Filling machine with water Filling machine with coffee beans Brew the coffee Brewing the coffee Coffee cup filled Taking can and filling a coffee cup Deciding to need more coffee Drinking the coffee
  18. Looking into the coffee pot Basic Building Blocks Kathi Coffee

    machine Coffee brewed Martin "No, sorry, I don't." "Make us some coffee" Filling machine with water Filling machine with coffee beans Brew the coffee Brewing the coffee Coffee cup filled Taking can and filling a coffee cup Looking into the coffee pot Deciding to need more coffee Drinking the coffee Do you have some coffee ready
  19. Basic Building Blocks Human or Group Event Command Behavior or

    Constraints Machine or Component Statement or Object Question or Search Behavior or Constraints Behavior or Constraints sophisticated storytelling for experienced teams
  20. Basic Building Blocks Human or Group Machine or Component Object

    Verb Behavior or Constraints Object Verb Object Verb super simple storytelling for domain and software experts
  21. Basic Building Blocks Accepting the job <Machine overheated> Behavior or

    Constraints Display overheating by blinking Allow level to be judged from outside Backbone customer journey Map assumptions and (problem) events here - moving to the top Map detailed deliverables or proposals here and prioritize from top to bottom and left to right