Understanding business rules and processes in a complex enterprise environment should be high on a priority list for a development team, as a basic precondition to be able to create solutions that provide value to the users. In order to understand the business one must learn the language in which the business operates, i.e. a domain language.
This presentation discusses Domain Storytelling as a lightweight technique that helps teams learn domain language in a close collaboration with domain experts using pictographic notation while highlighting the users’ most urgent needs. Using Domain Storytelling is a visual and engaging exercise on the domain experts’ terms, enabling teams to acquire knowledge about the business in an efficient way. The presentation is based on a real-world use-case from a healthcare domain.
Professional Resume Template for Software Developers
Domain storytelling
1. 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
Mufrid Krilic, Senior Software Developer/Coach, DIPS AS, Norway
Twitter: @mufridk
How to Learn a Domain Language
2. 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
– By applying the same principles we use when we try to learn a foreign
language
• Listen to people who speak the language
– Domain experts
• Repeat what they had said
• Get a confirmation that what you said was correct
Increase ability to communicate with domain experts on their terms
Motivation
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
Arrange a workshop with domain experts
– Domain experts
– Development team
– Facilitator
The facilitator ask domain experts to explain the way they work
Important that explanation is centered around short examples
How does it work?
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
The facilitator follows the explanation by visualizing each example as
a Domain Story
The domain experts confirm whether or not the visualized story is
correct
The facilitator checks if everybody in the room agree
Comments and deviations are noted as textual annotations
Facilitating Domain Storytelling
5. 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 Domain Story Syntax - Build Visual Sentences
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
Any rules?
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
Focus on what happens in the domain not on what could happen
If domain experts differ on how the business process is conducted
– For noticeable differences create another Domain Story
– For minor differences make a comment as a textual annotation
No Branching or Parallel Flows
8. 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
An actor should not occur more than once in a story
A work object can occur multiple times
Label activities in order in which they occur
Avoid technical jargon
Story is Preferably a Short Example
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
Demo - Use Case from Healthcare – Group Treatment
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
For patients with identical diagnoses sometimes the treatment has
the best effect when done in a group of patients
Often applied in psychiatry
Group Treatment in Healthcare
11. 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
Actor - Physician
– decides to start a group treatment for a group of patients
Actor - Supporting consultant
– Creates a patient group and lays out a schedule
– When patients check-in for an appointment in the group:
• Register patient attendance
• Deal with no-show and cancellations
• Follow-up on patient billing and reporting to authorities
– Notice patients on appointments which they do not need to attend
Group Treatment – Basic Business Flow
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
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
Event Storming,
– By Alberto Brandolini: www.eventstorming.com
– 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
Impact Mapping
– By Gojko Adzic: www.impactmapping.org
– Focus on the goal you are trying to achieve, actors who can help you achieve
it and impacts you want to observe on the actors rather than focus on the
software you want to deliver
Alternative Methods to Learn a Domain Language
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
Domain Storytelling references
– Stefan Hofer and Henning Schwentner
– www.domainstorytelling.org
Community on Slack
– #domain-storytelling channel at https://ddd-cqrs-es.slack.com
Domain Storytelling book
References and Further Reading
Editor's Notes
Learning a foreign language – amazing experience - Domain Storytelling a technique that helps us achieve the same amazing experience
Presentation, DIPS, enterprise software for healthcare industry, in market for over 25 years
Reference to introduction about foreign languages
When not fluent in the domain it is easier to communicate by concrete examples.
The generic abstract patterns of the business can later be deduced from the concrete examples
Visual representation helps involve everybody in the roomEven in a small workshop it is hard to get everybody to agree. Quick annotations allow for multiple perspectives to be respected while keeping the flow of the workshop
Mechanics of Domain Storytelling
Well, every game has rules, so does this one…
By labeling activities in order in which they occur you will be able to follow the story from the beginning to the end
As mentioned, my background is from software development for healthcare industry. It seemed natural to present use case from this domain, drawing from the experience when working for my company DIPS. It is also something non-trivial, hopefully resembling the level of complexity in your domain
Let’s see how a Domain Story for the check-in process looks like
Compiled using the Domain Storytelling tool on the web-site: https://www.wps.de/modeler/.
TODO: Textual annotation for No-Show and cancellationsAnother Domain Story for notifying patients on appointment they do not need to attend
Reference to workshop by Thomas Pierrain and Bruno BoucardDifferences between Domain Storytelling and Event Storming
Both methods are pretty versatile and can also be combined. If you are interested in the timeline, Event Storming might be a better start. If you want to know how people and/or software systems work together, go for Domain Storytelling.
If the problem space is very vague, maybe even chaotic, I would first try Event Storming. If you think people can articulate what they are doing, Domain Storytelling should work well.