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

Domain Storytelling (1 day workshop at DDD EU 2019)

Stefan Hofer
January 29, 2019

Domain Storytelling (1 day workshop at DDD EU 2019)

Domain Storytelling means that we let domain experts tell us stories about their tasks. While listening, we record the stories using a pictographic language. The domain experts can see immediately whether or not we understand their story. After very few stories, we are able to talk about the people, tasks, tools, work objects, and events in that domain.

In this workshop, we will explore how Domain Storytelling can help you with different aspects of DDD:

crunch domain knowledge
constitute ubiquitous language
segregate bounded contexts
tactical modeling

You will learn how to adapt the method to the various purposes and you will try out different tools. After the workshop, you will be able to apply Domain Storytelling on your own.

Stefan Hofer

January 29, 2019
Tweet

More Decks by Stefan Hofer

Other Decks in Business

Transcript

  1. Brought to you by Stefan (@hofstef) and Henning (@hschwentner). We

    are two DDD Enthusiasts working at WPS – Workplace Solutions GmbH in the beautiful city of Hamburg.
  2. @hofstef @hschwentner Paul Rayner‘s 3 pillars* of DDD (as explained

    at Explore DDD 2018) *) plus Ubiquitous Language as an overarching principle Picture: Martin Schimak @martinschimak
  3. @hofstef @hschwentner Schedule 9:45 Big Picture Stories 11:15 Strategic Design

    14:00 Domain Model Stories & Implementation Stories 15:45 Integrating Domain Storytelling in the Development Process 17:00 Wrap-Up 17:15 We Model Your Domain!
  4. @hofstef @hschwentner The sales person passes the contract on to

    the risk manager. passes on RISK MANAGER SALES PERSON to CONTRACT
  5. @hofstef @hschwentner Draw here Leave some empty space there 

    Annotations, variations, and purpose Preconditions, assumptions, and triggers
  6. @hofstef @hschwentner PowerPoint, yEd, Viso, gliphy… asks for Reservation (movie,

    time, seats) cashier movie-goer 1 Screen plan finds available seats in CineSoft 2 seats recommends 3
  7. @hofstef @hschwentner More indicators: • Difference in language (see out

    Talk at DDD Europe 2018) Some more heuristics: • https://medium.com/nick-tune-tech-strategy-blog • http://verraes.net/#blog
  8. @hofstef @hschwentner CUSTOMER CONTRACT 3 RISK MANAGER CONTRACT 7 <<Entity>>

    LeasingContract sign() vote() setVoteResult(…)
  9. @hofstef @hschwentner “A story is a promise to have a

    conversation later between the end-user and developers. Your goal in writing stories is not to work out details, but to discover the most important goals for your project and to organize a project into discrete, testable chunks.” Agile Government Leadership
  10. @hofstef @hschwentner Summary „kite level“ User Goal „sea level“ Sub-Function

    „fish level“ 3 Levels of User Stories (Alistair Cockburn)
  11. Structure of a „User Goal“ Story • Who?  Actor

    • What?  Activity • Why?  Activity, Annotation, verbal
  12. @hofstef @hschwentner Template <Name> As <Actor> I want to <Goal>

    so that I <Purpose>. • Do not follow the template blindly! • Use ubituitous language • Not a specification! • There are other templates
  13. @hofstef @hschwentner • When/how often? • Overview o Use Case

    Diagrams • Domain Stories as Documentation o Pictures vs. Storytelling o Use Cases • Domain Storytelling and… o …User Story Mapping o …Behavior-Driven Design (BDD) o …Event Storming
  14. Stefan: [email protected] @hofstef speakerdeck.com/hofstef The pictures used in this talk

    are public domain, unless noted otherwise. Screenshots and examples © WPS - Workplace Solutions GmbH Henning: [email protected] @hschwentner speakerdeck.com/hschwentner Website: http://domainstorytelling.org Twitter: #DomainStorytelling Slack: https://ddd-cqrs-es.slack.com/ Slack Channel: #domain-storytelling