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

Building Better Domain Models With Jeff Patton'...

Building Better Domain Models With Jeff Patton's User Story Mapping

A small workshop by Daniel Sack and Martin Schimak, DDD Vienna, April 5th 2019

Martin Schimak

April 05, 2019
Tweet

More Decks by Martin Schimak

Other Decks in Programming

Transcript

  1. Building Better Domain Models with Jeff Patton’s User Story Mapping

    A small workshop by Daniel Sack and Martin Schimak, DDD Vienna, April 5th 2019
  2. Get ready for work Wake up Discrete Steps are the

    smaller things we do. They help us to reach the goal of activities. Activities are bigger things we do. They are comprised of multiple steps. Configure alarm sound Looking at Details we may see different means, options and alternatives how to carry out steps. The main ingredients of user story mapping …
  3. Wake up Get ready for work Get ready to leave

    the house Have a breakfast Commute to the workplace Get settled in and start work Configure alarm sound Get out of bed Brew and drink coffee Walk to station and take subway Have a morning chat Hit snooze button Add some milk and sugar Choose the best train Hugo, a world class gardener: „Walking Skeleton“ „Backbone“ (activities) Start with gardening
  4. Configure alarm sound Get out of bed Brew and drink

    coffee Walk to station and take subway Have a morning chat Hit snooze button Clean up for the day Add some milk and sugar Choose the best train Start with gardening Mapped Backlog User journey Priority Read map from left to right, from top to bottom Pull 1 Pull 2 Pull 2 Pull 3 Pull 3 Project good enough! ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
  5. Work with what fits best for your team and don’t

    be afraid to change! © https://mozaicworks.com/blog/3-uses-story-maps-build-better-product/
  6. DDD - developing great business software - is a lot

    about … collaborative modeling
  7. Configure alarm sound Get out of bed Brew and drink

    coffee Walk to station and take subway Have a morning chat Hit snooze button Clean up for the day Add some milk and sugar Choose the best line Start with gardening It‘s ubiquitous for a DDD team. Language matters. Wake up Get ready to leave the house Commute to the office Get settled in and start work Have a breakfast
  8. Configure alarm sound Get out of bed Brew and drink

    coffee Walk to station and take subway Have a morning chat Hit snooze button Clean up for the day Add some milk and sugar Choose the best line Start with work User story maps provide a good dose of context … Wake up Get ready to leave the house Commute to the work place Get settled in and start work Have a breakfast We know what this is!
  9. Activites and Steps help us remember and re- tell the

    story, they focus on giving us context. Configure alarm sound The Detail Stories help us to imagine the product we build, and describe the software we could build. … and are telling us a bigger story (user journey) Get ready for work Wake up
  10. Configure alarm sound Get out of bed Brew and drink

    coffee Walk to station and take subway Have a morning chat Hit snooze button Clean up for the day Add some milk and sugar Choose the best line Start with work The more context we know, the better we see boundaries Wake up Get ready to leave the house Commute to the work place Get settled in and start work Have a breakfast
  11. Gardening Work Product Price Supplier Subway Transport Line Track Station

    Alarm Snooze Wake up Domestic/Household The idea of explicitely defining bounded contexts. Ubiquitous Language Ubiquitous Language Ubiquitous Language Bounded Context Bounded Context Bounded Context
  12. Account Management Identifying a core domain … depends on priorities

    Credit Transfer Customer Relationship Gardening work Domestic/Household Supporting Domain Core Domain Generic Domain Subway Transport
  13. Configure alarm sound Get out of bed Brew and drink

    coffee Walk to station and take subway Have a morning chat Hit snooze button Clean up for the day Add some milk and sugar Choose the best train Start with gardening Mapped Backlog User journey Priority There is at least a soft relationship to story maps … Pull 1 Pull 2 Pull 2 Pull 3 Pull 3 Project good enough!
  14. Understanding bounded contexts will help planning Get ready for work

    Wake up Configure alarm sound Huge epic spanning several contexts Large feature spanning several stories Small story ready for implementation
  15. Coffee lover Hugo starts his small Coffee Roasting Biz! *)

    *) Inspired by Nick Chamberlain‘s book „Applying Domain-Driven Design with CQRS and Eventsourcing“ Thank you, Nick!
  16. Hugo says: “We roast-to-order your very own coffee!“ Do you,

    Hugo? Well, almost. What actually happens … 1) Hugo buys diverse green beans and stocks them 2) Hugo schedules roasting days - to roast the beans in batches 3) Customers buy coffee on website – coffee roasted in a very specific batch!
  17. Now it‘s our turn to build a story map –

    PHASE 1 1) You get an unsorted starter set of stickies! 2) Try to make sense of the pink skeleton! 3) Add yellow stickies and prioritize them, rewrite, add, dismiss!
  18. Now it‘s our turn to build a story map –

    PHASE 2 1) Step back and watch out for semantical boundaries 2) Use sticky notes to name some bounded context candidates 3) Discuss some deliverables: how are they related to contexts? Use colored dots to show a relation! Domestic, Household