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

Domain Storytelling - Facilitator's Guide to Enhance Learning in Your Organization

Domain Storytelling - Facilitator's Guide to Enhance Learning in Your Organization

In order to understand business rules and processes in a complex enterprise environment one must learn the language in which the business operates, i.e. a domain language. This talk will present Domain Storytelling as a lightweight technique that helps teams learn the domain language in a close collaboration with domain experts as well as providing strong hints on subdomains and contexts for implementation to kick off in a right direction.

Join to see how facilitating a Domain Storytelling workshop can enhance learning in your organization as well as push teams towards critical decisions using strategic Domain-Driven Design.

The talk will be based on a real-world use-case from a healthcare domain.

Mufrid Krilic

June 08, 2021
Tweet

More Decks by Mufrid Krilic

Other Decks in Technology

Transcript

  1. “You have to see it too. This isn’t a sheep.

    It’s a ram. It has horns.”
  2. “This one is too old. I want a sheep who

    will live a long time.”
  3. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Mufrid Krilic Senior Software Architect/Coach DIPS AS, Norway Domain Storytelling Facilitator’s Guide to Enhance Learning in Your Organization Her kan du legge inn bilde. Du finner figurer her: Link
  4. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ In order to understand the business, one must learn the language in which the business operates – i.e. a domain language Motivation
  5. Takeaways 1. Ability to communicate with domain experts on their

    terms 2. Engaging way to facilitate a customer workshop 3. Kick-off your development project with hints on context boundaries Ella Fitzegerald – «They Cant’t Take That Away From Me»
  6. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Part 1: Ability to communicate with domain experts on their terms
  7. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Lightweight method to learn a domain language What is Domain Storytelling?
  8. How do you learn any language? ▪ Listen to people

    who speak the language ▪ Repeat what they had said ▪ Get a confirmation that what you said was correct
  9. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ The facilitator asks and guides domain experts to explain the way they work Workshop Technique
  10. Listen and Speak the Domain Language ▪ The facilitator builds

    Domain Stories by visualizing examples from the domain Workshop discussion flows as a series of short examples
  11. Domain Experts Confirm The Visual Story ▪ The facilitator checks

    if everybody in the room agrees Comments and deviations are noted as textual annotations
  12. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Picture from www.domainstorytelling.org The Domain Story Syntax - Build Visual Sentences
  13. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Focus on what happens in the domain not on what could happen What is a Domain Story
  14. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ "You can learn more from a good example than from a bad abstraction.“ – after Peter Hruschka What is a Domain Story
  15. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ No branching or parallelism in Domain Stories – We are not building a flow or sequence diagram What is a Domain Story
  16. Any rules? ▪ For noticeable differences create another Domain Story

    ▪ For minor differences make a comment as a textual annotation What if domain experts differ on how the business process is conducted?
  17. Any rules? ▪ An actor should not occur more than

    once in a story Actors in a Domain Story
  18. Any rules? ▪ Label activities in order in which they

    occur Activities in a Domain Story
  19. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Use Case: Group Therapy in a Hospital
  20. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ For patients with identical diagnoses sometimes the therapy has the best effect when done in a group of patients Group Therapy in Norwegian Hospitals
  21. Group Therapy in Norwegian Hospitals ▪ Mental Health Care ▪

    Adult and Pediatric ▪ Somatic Health Care ▪ Training to improve quality of life with long-term diagnoses Business areas in hospitals utilizing group therapy
  22. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Group Planning: – Physician decides to start a group treatment for a group of patients – Medical secretary creates a patient group and lays out a schedule Group Therapy in Norwegian Hospitals
  23. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Group Check-In: – When patients check-in for an appointment in the group the secretary: •Registers patient attendance •Deals with no-show and cancellations •Informs patients on appointments which they do not need to attend •Follows-up on patient billing and reporting to authorities Group Therapy in Norwegian Hospitals
  24. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Domain Story for Group Check-In Built using web-tool wps.de/modeler
  25. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Domain Story for Group Check-In
  26. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E
  27. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E
  28. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E
  29. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E
  30. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E FAQ Alternative methods to learn a domain language
  31. Event Storming ▪ Tell the story of the domain by

    plotting a timeline using domain events ▪ Domain Event: Verb in a past tense for something that domain expert cares about eventstorming.com by Alberto Brandolini
  32. Impact Mapping ▪ Focus on ▪ the goal you are

    trying to achieve, ▪ actors who can help you achieve it ▪ impacts you want to observe on the actors ▪ Rather than ▪ the software you want to deliver impactmapping.org by Gojko Adzic
  33. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Event Storming exposes how time influences the business processes – Often ignored yet significant factor Domain Storytelling vs. Event Storming
  34. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Domain Storytelling focuses on communication between people and/or software systems Domain Storytelling vs. Event Storming
  35. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Event Storming allows for very explorative modelling Domain Storytelling vs. Event Storming
  36. Deep Listening ▪ Domain Storytelling provides an environment where everybody

    gets heard ▪ Every domain expert can tell hers/his story and get it visualized. truly remarkable occurrence
  37. Deep Listening ▪ substantially improving the collaboration between the team

    and domain experts. ▪ If there is something that software developers can get better at it is listening to the business. truly remarkable occurrence
  38. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Part 2: Engaging way to facilitate a customer workshop
  39. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Combining Different Approaches Event Storming vs. Domain Storytelling vs. Impact Mapping No method lock-in!
  40. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Facilitator’s Challenges with Domain Storytelling DISTILLING AS-IS AND TO-BE DOMAIN STORIES AVOID BECOMING A BOTTLENECK SETTING THE STAGE
  41. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Avoid becoming a bottleneck trying to visualize a Domain Story learning the domain language keeping track of the essential comments from the other participants
  42. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Avoid becoming a bottleneck – Backstage Facilitator “WHITEBOARD” FACILITATOR RUNNING THE SHOW “BACKSTAGE” FACILITATOR DOCUMENTING THE DOMAIN STORIES
  43. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Avoid becoming a bottleneck - Event Storming Use Hot-Spots post-it notes as a reminder of a valuable discussion The most chaotic discussions are the most valuable ones
  44. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Game Storming suggests combining divergent and convergent methods – divide the participants into groups (divergent) – then presenting the outcome of group discussions to everybody (convergent). Avoid becoming a bottleneck - Game Storming
  45. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ What are the overall goals? Setting the stage
  46. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ What are we trying to achieve in the workshop? ▪ Start a workshop with Impact Mapping-inspired session ▪ Discover goals, impacts and needs – Groundwork for writing Domain Stories Set the stage with Impact Mapping
  47. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Summarize the workshop by running Lean Coffee format based on the insights in Domain Stories – choose the topics for the Lean Coffee session • use textual annotations • use hot-spots Lean Chocolate
  48. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Lean Chocolate - a dessert after the main course! Lean Chocolate the Lean Coffee variant run at the end of the workshop
  49. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Part 3: Discovering Bounded Contexts
  50. Why I Value Domain-Driven Design ▪ DDD is an approach

    for dealing with complex problems with emphasis on learning the domain – in a close collaboration with domain experts – in order to focus on the most important problems to solve. Eric Evans The «Blue» Book
  51. The Two Pillars of DDD ▪ Ubiquitous Language ▪ Bounded

    Context Vaughn Vernon The «Red» Book
  52. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Ubiquitous Language – Develop domain model based on terms from the domain language The Two Pillars of DDD
  53. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Bounded Context – tackle complexity by splitting application via inherent subdomain boundaries – Bounded Contexts are boundaries in the software system that aspire to correspond to the subdomains The Two Pillars of DDD
  54. The Two Pillars of DDD ▪ Bounded Contexts are defined

    by the semantics of the Ubiquitous Language! Vaughn Vernon The «Green» Book
  55. Bounded Contexts Hints in Domain Stories ▪ Find boundaries that

    separate models but don't separate people Eric Evans DDD Reference
  56. Bounded Contexts Hints in Domain Stories ▪ One-way information flow

    ▪ Difference in language ▪ Different triggers ▪ Time vs. on-demand Scott Millett and Nick Tune PPP of DDD
  57. Bounded Contexts Hints in Domain Stories ▪ Start development based

    on suggested Bounded Context ▪ Then iterate ▪ New knowledge may lead to new insights ▪ New insights may lead to new Bounded Contexts Scott Wlaschin DDD and Functional Model
  58. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Bounded Contexts in our Domain Story
  59. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E
  60. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Group Therapy in Norwegian Hospitals ▪ Mental Health Care ▪ Adult and Pediatric ▪ Somatic Health Care ▪ Training to improve quality of life with long-term diagnoses Business areas in hospitals utilizing group therapy
  61. Service-Oriented Architecture ▪ Service is a technical authority for a

    given Business Capability – Udi Dahan, «Advanced Distributed System Design» - course Boundaries by Business Capabilities
  62. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Group Therapy and Business Capabilities
  63. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E Group Therapy and Business Capabilities
  64. Discover business capabilities using Pure Domain Stories ▪ Define top-most

    boundaries as services per business capabilities ▪ Within each service define bounded contexts using linguistic boundaries from the domain language DDD and SOA
  65. Takeaways 1. Ability to communicate with domain experts on their

    terms 2. Engaging way to facilitate a customer workshop 3. Kick-off your development project with hints on context boundaries Ella Fitzegerald – «They Cant’t Take That Away From Me»
  66. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ Domain Storytelling book and website – https://leanpub.com/domainstorytelling • Stefan Hofer and Henning Schwentner – www.domainstorytelling.org – https://github.com/hofstef/awesome-domain-storytelling ▪ Community on Slack – #domain-storytelling channel at https://ddd-cqrs-es.slack.com ▪ My blog: https://mufridk.medium.com References and Further Reading
  67. E N A B L I N G E F

    F I C I E N T H E A L T H C A R E ▪ https://thenounproject.com/libraryofcongress/ ▪ Maria Marin from the Noun Project ▪ Language by Gem Designs from the Noun Project ▪ group by Blake Thompson from the Noun Project ▪ Close up shot of hot coffee in glasses lined up ready for coffee tasting by Suzanne Strong from Noun Project ▪ www.domainstorytelling.org Photos and Icons Acknowledgements