Slide 1

Slide 1 text

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 Model in Multi-Language Environment Mufrid Krilic, Senior Software Developer/Coach DIPS AS, Norway @mufridk with examples from healthcare

Slide 2

Slide 2 text

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 ▪ Main features: – Native domain language is not English – Programming language based on English – Discussions with domain experts in the native language Multi-Language Environment @mufridk

Slide 3

Slide 3 text

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 ▪ Dilemma: – Translate to English or keep the business rules in native language Challenges of a Multi-Language Environment @mufridk

Slide 4

Slide 4 text

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 ▪ Translation impedes development of the Ubiquitous Language – Front-end and documentation is preferably in the native language – «Isn’t translation a technical concern?» @mufridk

Slide 5

Slide 5 text

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 ▪ Challenges of keeping business rules in native language – Non-native speaking developers coming in – Integration challenges with application logic – Integration with external systems • Anti-Corruption Layer definitely becomes a translation layer @mufridk

Slide 6

Slide 6 text

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 @mufridk

Slide 7

Slide 7 text

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 ▪ Well-established legacy system leaves a legacy of terms that have become a part of Ubiquitous Language – E.g. originally introduced by developers then adopted by users – With proprietary semantics that is difficult to translate Legacy of the Legacy System @mufridk

Slide 8

Slide 8 text

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 business rules coded in Norwegian – Leaving us with very few leads on well-proven translation suggestions ▪ In retrospect – Definitely something to consider, however Legacy of the Legacy System @mufridk

Slide 9

Slide 9 text

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 Team Bounded Context Subdomain Translation Introduced Context Mapping Challenges @mufridk Team needs to integrate with a Bounded Context Based on a domain term from the subdomain Which translation was used? What team owns the context?

Slide 10

Slide 10 text

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 ▪ Relational database translation views – Database table with column names in Norwegian – Each table has a “translation view” that maps Norwegian column names to English – Issue: • Too tech, too far from the domain experts Documenting Translations – First Iteration @mufridk

Slide 11

Slide 11 text

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 ▪ Translations exclusively based on healthcare standards – Issues: • Difficult to enforce • Everybody is confused as to what term to use as standards are not dictionary – Unlooked-for side-effect: • Rigorous formal terms enter the Ubiquitous Language: – “Health Care Provider” and “Health Care Party”, not Doctor or Physician Documenting Translations – Second Iteration @mufridk

Slide 12

Slide 12 text

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 ▪ Evolving in-house Wiki dictionary based on applied translations – Each Norwegian term is mapped to its English translation and the Bounded Context where the domain term is applied – Issues: • Domain expert friendly but too far from code. • Maintenance is left to a couple of enthusiasts Documenting Translations – Third Iteration @mufridk

Slide 13

Slide 13 text

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 ▪ Global model thinking in enterprise environment – The firm belief that concepts can be represented outside of individual subjects and in a single coherent manner • by a single authority • then shared by everyone to implement universal interoperability ▪ As opposed to DDD and Bounded Contexts ▪ Could we learn something here? Every approach was attempted at enterprise-wide scale @mufridk

Slide 14

Slide 14 text

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 ▪ Dedicated Slack-channel #domainlanguage – For discussions on semantics of domain terms and possible translations – Without explicit mentioning of DDD or bounded contexts Documenting Translations – Fourth Iteration @mufridk

Slide 15

Slide 15 text

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 ▪ Discussions offer historical perspective on legacy domain terms by people involved in creating the terms ▪ Positive side-effects: – Revealing hard-to-find domain expert! Enterprise-wide Slack discussions #domainlanguage @mufridk

Slide 16

Slide 16 text

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 ▪ Inconsistencies in domain language are highlighted – Could the obvious inconsistencies challenge global model thinking? – Thus paving the path for DDD-mindset? – The effects on this approach are still under observation Enterprise-wide Slack discussions #domainlanguage @mufridk

Slide 17

Slide 17 text

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 Story of a team working in multi-language environment: Discovering Ubiquitous Language @mufridk

Slide 18

Slide 18 text

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 ▪ Finding the name for a process of referring a patient, currently being under treatment in a hospital, to another hospital for more specialized or extensive care. Story: Discovering “Inter-Hospital Referral” @mufridk

Slide 19

Slide 19 text

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 term in Norwegian: “Viderehenvisning” ▪ Initial suggestion by the team: Referral Forwarding – Because: “Henvisning” ~ Referral and “Videresende e-post” ~ E-mail forwarding. ▪ The team opted to challenge in-house domain experts The Story Continues @mufridk

Slide 20

Slide 20 text

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 ▪ Please suggest the translation – and how does Referral Forwarding sound like? ▪ We got the answer…. – Referral Forwarding is ok – …. And no other suggestions! ▪ I guess that’s what happens when trying to introduce the terms in the Ubiquitous Language by ourselves – You run into confirmation bias The Story Continues @mufridk

Slide 21

Slide 21 text

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 ▪ Starting to pay more attention to the language of domain experts – Repeatedly discussing that the primary use case is to create a new referral – Users will not be forwarding a referral to another hospital – Users will be referring a patient to another hospital The Story Continues @mufridk

Slide 22

Slide 22 text

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 ▪ Challenging the customer – Please suggest a translation ☺ – We got confirmation that, from a user’s perspective, the process is about referring a patient to another hospital – i.e. creating a new referral to be evaluated at another hospital – “Hence it is just another Referral but if you want an alternative suggestion you could go with Inter-Hospital Referral” The Story Continues @mufridk

Slide 23

Slide 23 text

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 ▪ Recognizing the need to have efficient translations that are as close as semantically possible to domain terms in the native language ▪ Documenting the translations is worth a try ▪ Involve the domain expert closely in the translation process ▪ If we could turn back time….. – Reconsidering use of native language in domain model Lessons Learned @mufridk

Slide 24

Slide 24 text

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 ▪ Global model thinking is tempting – Vision of a concise definitions that apply everywhere which everybody agrees on thus solving many communication issues in the organization • Acknowledging that it is an attractive option for many ▪ DDD bounded contexts approach perhaps not intuitive to everyone – Difficult to visualize the contexts while discussing them – Need to address global model thinking with new perspectives Deeper Lessons Learned @mufridk

Slide 25

Slide 25 text

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 ▪ Advantages of Multi-language environment – Cultural context is there by default – Synonyms and subtle semantic differences forces teams to focus on language Domain Model in Multi-Language Environments @mufridk

Slide 26

Slide 26 text

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://www.webfactory.de/blog/ubiquitous-language-in-a-non- english-domain ▪ Community discussion: – https://softwareengineering.stackexchange.com/questions/41160/programm ing-and-ubiquitous-language-ddd-in-a-non-english-domain Related Discussions @mufridk

Slide 27

Slide 27 text

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 ▪ This presentation will be soon available on the muCon London website at the following link – https://skillsmatter.com/conferences/11982-con-london-2019-the- conference-on-microservices-ddd-and-software-architecture#skillscasts ▪ Announced on Twitter @mufridk Video @mufridk