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

Domain Storytelling - How to Learn a Domain Language

Domain Storytelling - How to Learn a Domain Language

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.

Mufrid Krilic

April 04, 2019
Tweet

More Decks by Mufrid Krilic

Other Decks in Programming

Transcript

  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