n 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.
Project Based Learning (A.I).pptx detail explanation
Domain storytelling – facilitator’s guide to enhance learning in your organization dev days europe 2021
1. “Please, draw me a sheep!”
“No. This sheep is already very ill. Make me another.”
2. “You have to see it too. This isn’t a sheep. It’s a ram. It has horns.”
3. “This one is too old. I want a sheep who will live a long time.”
4. “That’s a box. The sheep you want is inside.”
“That’s exactly how I wanted it!”
5.
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
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
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
▪ In order to understand the business,
one must learn the language in which
the business operates
– i.e. a domain language
Motivation
8. 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»
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
Part 1:
Ability to communicate with domain experts on
their terms
10. 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?
11. 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
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
▪ The facilitator asks and guides domain experts to explain the way
they work
Workshop Technique
13. 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
14. Domain Experts Confirm The Visual Story
▪ The facilitator checks if everybody in the room agrees
Comments and
deviations are noted as
textual annotations
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
Picture from www.domainstorytelling.org
The Domain Story Syntax - Build Visual Sentences
16. 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
17. 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
18. 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
19. 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?
20. Any rules?
▪ An actor should not occur more than once in a story
Actors in a Domain Story
21. Any rules?
▪ A work object can occur multiple times
Work Objects in a
Domain Story
22. Any rules?
▪ Label activities in order in which they occur
Activities in a Domain
Story
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
Use Case: Group Therapy in a Hospital
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
▪ For patients with identical diagnoses sometimes the therapy has the
best effect when done in a group of patients
Group Therapy in Norwegian Hospitals
26. 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
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
▪ 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
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
▪ 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
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
Domain Story for Group Check-In
Built using web-tool wps.de/modeler
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
Domain Story for Group Check-In
31. 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
32. 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
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
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
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
FAQ
Alternative methods to learn a domain language
36. 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
37. 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
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
▪ Event Storming exposes how time influences the business processes
– Often ignored yet significant factor
Domain Storytelling vs. Event Storming
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
▪ Domain Storytelling focuses on communication between people
and/or software systems
Domain Storytelling vs. Event Storming
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
▪ Event Storming allows for very explorative modelling
Domain Storytelling vs. Event Storming
41. 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
42. 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
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
Part 2: Engaging way to facilitate a customer
workshop
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
Combining Different Approaches
Event Storming vs. Domain Storytelling vs. Impact Mapping
No method lock-in!
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
Facilitator’s Challenges with Domain Storytelling
DISTILLING AS-IS AND
TO-BE DOMAIN STORIES
AVOID BECOMING A
BOTTLENECK
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
Avoid becoming a bottleneck
trying to visualize a Domain Story
learning the domain language
keeping track of the essential comments from the other
participants
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
Avoid becoming a bottleneck – Backstage Facilitator
“WHITEBOARD” FACILITATOR
RUNNING THE SHOW
“BACKSTAGE” FACILITATOR
DOCUMENTING THE DOMAIN STORIES
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
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
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
▪ 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
50. 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
51. 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
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
▪ 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
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
Lean Chocolate - a dessert after the main course!
Lean Chocolate
the Lean Coffee variant
run at the end of the workshop
54. 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
55. 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
56. The Two Pillars of DDD
▪ Ubiquitous Language
▪ Bounded Context
Vaughn Vernon
The «Red» Book
57. 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
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 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
59. The Two Pillars of DDD
▪ Bounded Contexts are defined by the semantics of the
Ubiquitous Language!
Vaughn Vernon
The «Green» Book
60. Bounded Contexts Hints in Domain Stories
▪ Find boundaries that separate models but don't separate
people
Eric Evans
DDD Reference
61. 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
62. 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
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
Bounded Contexts in our Domain Story
64. 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
65. 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
66. Service-Oriented Architecture
▪ Service is a technical authority for a given Business Capability
– Udi Dahan, «Advanced Distributed System Design» - course
Boundaries by
Business
Capabilities
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
Group Therapy and Business Capabilities
68. 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
69. 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
70. 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»
71. 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
72. 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