Slide 1

Slide 1 text

Multiple Models with Multiple Perspectives in a Cross-Functional Team Case Study From Healthcare DDD Europe 2024 Mufrid Krilic, Domain-Driven Design Coach CoWork, Norway

Slide 2

Slide 2 text

Modeling Breakthrough!

Slide 3

Slide 3 text

Why this talk? «At times, it is bewildering to read all of the material on #DomainDrivenDesign posted here. Close to zero talk about the actual models being fleshed out or related breakthroughs, which, let's face it, are at the heart of it.» - Yves Reynhout on LinkedIn

Slide 4

Slide 4 text

What I do…. • Coaching individuals, teams and organizations • Helping Build Domain-Driven Product Organizations • Feel free to reach out! Product Development Coaching

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Let’s start with the story….

Slide 10

Slide 10 text

Five Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning different perspectives with Bounded Contexts 4. Delivering value in legacy constrained environments 5. Modeling breakthrough

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Questions at menti.com 7890 5555 ▪ For patients with identical diagnoses sometimes the treatment has the best effect when done in a group of patients ▪ Examples from different subdomains in healthcare: • Conversation therapy groups in psychiatry • Training sessions post-injury Domain: Healthcare - Group Therapy

Slide 13

Slide 13 text

The Team ….and the constraints

Slide 14

Slide 14 text

Questions at menti.com 7890 5555 The business goal constraint • “Replace the legacy system” • It must work “everywhere” and for “everyone”

Slide 15

Slide 15 text

Questions at menti.com 7890 5555 Legacy system constraint Works “everywhere” and for “everyone”

Slide 16

Slide 16 text

Questions at menti.com 7890 5555 Legacy system opportunity! • Why are we replacing it? • “Complex systems run as broken systems.” • “How Complex Systems Fail” by Richard I. Cook

Slide 17

Slide 17 text

Questions at menti.com 7890 5555 Knowledge Constraint Rather limited domain knowledge • Developers • Tester

Slide 18

Slide 18 text

Questions at menti.com 7890 5555 Knowledge Opportunity! Domain Expert turned Product Owner “customers might be using the legacy system in unpredictable ways”

Slide 19

Slide 19 text

The cross-functional constraint 1 QA 1 Product Owner 4 developers UX-designer? Operations?

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Five Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning different perspectives with Bounded Contexts 4. Delivering value in legacy constrained environments 5. Modeling breakthrough

Slide 24

Slide 24 text

Strategies to Learn Complex Domains

Slide 25

Slide 25 text

Tight-Loose-Tight (TLT)

Slide 26

Slide 26 text

Questions at menti.com 7890 5555 Two Mindsets • What kind of problems are you working on? • Simple • Complicated • or Complex Problems

Slide 27

Slide 27 text

Simple problems -> no need for TLT! Simple Problems 5. Our Mission 4. Our Users 3. Our Plans 2. My Role 1. My Expertise Outer Alignment Inner Alignment

Slide 28

Slide 28 text

Simple problems -> no need for TLT! Simple Problems Best Practice Rational Decision Making Standards 5. Our Mission 4. Our Users 3. Our Plans 2. My Role 1. My Expertise Automate! Outer Alignment Inner Alignment

Slide 29

Slide 29 text

If you have previous experience, stick to the plan! Complicated Problems 5. Our Mission 4. Our Users 3. Our Plans 2. My Role 1. My Expertise Outer Alignment Inner Alignment

Slide 30

Slide 30 text

If you have previous experience, stick to the plan! Complicated Problems We have previous experience We can trust the plan We can trust our judgement to guide the decisions 5. Our Mission 4. Our Users 3. Our Plans 2. My Role 1. My Expertise Outer Alignment Inner Alignment

Slide 31

Slide 31 text

Hypothesis-driven development 5. Our Mission 4. Our Users 3. Our Plans 2. My Role 1. My Expertise Outer Alignment Inner Alignment

Slide 32

Slide 32 text

Hypothesis-driven development Complex Problems 5. Our Mission 4. Our Users 3. Our Plans 2. My Role 1. My Expertise Outer Alignment Inner Alignment

Slide 33

Slide 33 text

Hypothesis-driven development Complex Problems Never done before Learn from Failure Challenge your assumptions We lack experience 5. Our Mission 4. Our Users 3. Our Plans 2. My Role 1. My Expertise Outer Alignment Inner Alignment

Slide 34

Slide 34 text

Combining TLT-leadership approach with strategic design Discover common goals by domain analysis Evaluating multiple models by collaborative modeling Challenge your assumptions

Slide 35

Slide 35 text

Questions at menti.com 7890 5555 TLT argues for Collaborative Modeling in complex domains The “First Tight” is all about discovering purpose and needs

Slide 36

Slide 36 text

Learning New Domain Healthcare – Group Therapy

Slide 37

Slide 37 text

How to learn a new domain? Discover Use Cases Drill into scenarios Listen! Repeat step 2 • Same or different scenario

Slide 38

Slide 38 text

Questions at menti.com 7890 5555 Use-Case Approach • Identify the most common use cases • or the ones with most “pain”

Slide 39

Slide 39 text

Questions at menti.com 7890 5555 ▪ Setting up a group • Planning ▪ Conducting group appointments • Check-in process Group Therapy Use Cases

Slide 40

Slide 40 text

Group Therapy Planning Somatic Department Rehabilitation after lifestyle affected diagnosis

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

Group Therapy Check-In Somatic Department Rehabilitation after lifestyle affected diagnosis

Slide 48

Slide 48 text

No content

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

Group Therapy Planning Psychiatric Department Adult Psychiatry

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

No content

Slide 59

Slide 59 text

Group Therapy Check-In Psychiatric Department Adult Psychiatry

Slide 60

Slide 60 text

No content

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

No content

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

Questions at menti.com 7890 5555 Five Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning different perspectives with Bounded Contexts 4. Delivering value in legacy constrained environments 5. Modeling breakthrough

Slide 67

Slide 67 text

Domain Problem Decomposition

Slide 68

Slide 68 text

Questions at menti.com 7890 5555 Data Ownership • A business concept is defined as a set of data properties

Slide 69

Slide 69 text

Questions at menti.com 7890 5555 Functional Decomposition • Boundaries in the system follow the function that a user needs to do hers/his job • Classic approach • Subdomain = Function

Slide 70

Slide 70 text

Group Treatment in Healthcare

Slide 71

Slide 71 text

Domain Model

Slide 72

Slide 72 text

Data Ownership in Domain Model – Functional Decomposition • One single “Group” for different functions • Physician and specialists • Patients • Appointments • Location/Venue • Patient attendance, including no-show • Patients exempted from payment • Invoice – preferred method • Diagnosis-based patient fee • Reference to § in law for compulsory interventions in psychiatry

Slide 73

Slide 73 text

Questions at menti.com 7890 5555 Role-based decomposition • Boundaries in the system based on which roles perform different functions • Leads to more task-oriented model • Subdomain = Role based function

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

No content

Slide 76

Slide 76 text

Data Ownership in Domain Model – role-based decomposition “Group” planning context • Specialists • Patients • Appointments • Location • Reference to § in law for psychiatry “Group” check-in context • Patient attendance incl. no-show • Cancelled appointments • Patients exempted from payment • Invoice – preferred method • Diagnosis-based patient fee

Slide 77

Slide 77 text

Questions at menti.com 7890 5555 Time- and role-based decomposition • Boundaries in the system based on which roles perform different function at different times • Supports context-oriented systems • Subdomain = Role-based function in a user context

Slide 78

Slide 78 text

No content

Slide 79

Slide 79 text

No content

Slide 80

Slide 80 text

Data Ownership in Domain Model – time- and role-based decomposition “Group” planning context • Specialists • Patients • Appointments • Location • Reference to § in law for psychiatry “Group” check-in context • Patients exempted from payment • Invoice preferred method • Diagnosis-based patient fee “Group” billing context • Patient attendance, incl. no-show • Cancelled appointments

Slide 81

Slide 81 text

Questions at menti.com 7890 5555 About Functional Decomposition • Customer/end-user needs are hidden behind functions! • No incentives to decompose • Pull towards canonical domain model

Slide 82

Slide 82 text

Five Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning different perspectives with Bounded Contexts 4. Delivering value in legacy constrained environments 5. Modeling breakthrough

Slide 83

Slide 83 text

Choosing the Bounded Contexts

Slide 84

Slide 84 text

Questions at menti.com 7890 5555 End-users need flexibility • Somatic Rehabilitation • Different courses • Different diagnosis • Psychiatric Therapy • Adult groups • Pediatric groups • Different Locations

Slide 85

Slide 85 text

Questions at menti.com 7890 5555 Flexibility = complexity? • Allowing flexibility everywhere calls for highly customizable systems • Works for “everyone” and “everywhere” • High level of customization => high complexity

Slide 86

Slide 86 text

Questions at menti.com 7890 5555 Flexibility within a Bounded Context The degree of customization in a system is constrained to bounded contexts

Slide 87

Slide 87 text

What did we do?

Slide 88

Slide 88 text

Questions at menti.com 7890 5555 Role-based decomposition • Boundaries in the system based on which roles perform different functions • Leads to more task-oriented model • Subdomain = Role based function

Slide 89

Slide 89 text

No content

Slide 90

Slide 90 text

Questions at menti.com 7890 5555 Why? The time perspective separates the models Group Checkin is about confirming what happened in an appointment Group Planning is about how appointments are going to happen

Slide 91

Slide 91 text

Hypothesis-driven development 5. Our Mission 4. Our Users 3. Our Plans 2. My Role 1. My Expertise Outer Alignment Inner Alignment

Slide 92

Slide 92 text

Multiple Models Reflected in Code Structure

Slide 93

Slide 93 text

Boundaries by Abstractions Use appropriate abstraction: • Repository • Namespaces

Slide 94

Slide 94 text

Bounded Models • Patient attendance incl. no-show • Cancelled appointments • Patients exempted from payment • Specialists • Patients • Appointments • Location • Reference to § in law for psychiatry

Slide 95

Slide 95 text

Five Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning different perspectives with Bounded Contexts 4. Delivering value in legacy constrained environments 5. Modeling breakthrough

Slide 96

Slide 96 text

Discovering value chains with Context Mapping

Slide 97

Slide 97 text

No content

Slide 98

Slide 98 text

Questions at menti.com 7890 5555 Context Mapping • Group Check-in has relation to three other contexts • Patient Visit • Patient Billing • Scheduling

Slide 99

Slide 99 text

Questions at menti.com 7890 5555 Which relation describes our situation best? • “upstream-downstream relationship […]” • "the upstream team may succeed independently of the fate of the downstream team, [...] • Establish a clear customer/supplier relationship between the two teams • Negotiate and budget tasks for downstream requirements • (Source: DDD Reference by Eric Evans)

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

Questions at menti.com 7890 5555 Using dependencies to our advantage • It turned out that dependencies were working in our favor • Other teams could help us achieve the goal with relatively little work on their side

Slide 102

Slide 102 text

Questions at menti.com 7890 5555 Solved by navigating to other contexts using IDs patientID appointmentID UI Composition

Slide 103

Slide 103 text

Questions at menti.com 7890 5555 UI Composition • Works well as context integration pattern in a multi-team distributed environment • Legacy systems “compliant”

Slide 104

Slide 104 text

Questions at menti.com 7890 5555 Context Maps revealing possibility for early release • Achieving full autonomy could mean we need to do all the work ourselves • Group Planning • Negotiating deliveries with other teams to release early • Group Check-In

Slide 105

Slide 105 text

Five Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning different perspectives with Bounded Contexts 4. Delivering value in legacy constrained environments 5. Modeling breakthrough

Slide 106

Slide 106 text

Finally! Understanding the Domain

Slide 107

Slide 107 text

Questions at menti.com 7890 5555 The Business and the Legacy System • The more complex the legacy system…. • ….and the longer the system is in production • ….the more likely that the domain language will be affected …. by the language of the legacy system!

Slide 108

Slide 108 text

Questions at menti.com 7890 5555 Distilling the Domain with Pure Domain Stories Capturing the very essence of the business processes

Slide 109

Slide 109 text

Questions at menti.com 7890 5555 Facilitator’s guidance • “How would you do your work without the software system?” • “What are your needs at the particular step?” • “Why are you doing that?”

Slide 110

Slide 110 text

Group Planning Somatic Department

Slide 111

Slide 111 text

Group Planning Psychiatric Department

Slide 112

Slide 112 text

Departments •Accident and Emergency Department •Anaesthesia and Surgical Services •Cancer Treatment and Medical Physics •Children and Youth Clinic •Clinical Nutrition •Communication •Department of Occupational Therapy •Dermatology •Emergency Clinic •Emergency Department Short Stay Unit •Finance •Haukeland hotel •Heart Disease •Human Resources •Internal Medicine •International Collaboration •Laboratory Medicine and Pathology •Maternity Ward •Medical Biochemistry and Pharmacology MBF •Medical Genetics •Neurology •Neurosurgery •Occupational Medicine •Occupational Outpatient Clinic •Ophthalmology •Oral Surgery •Orthopedic Clinic •Physiotherapy •Psychiatry •Radiology department •Recruitment and Temporary Staffing Office •Regional Centre for Asthma, Allergy and Other Hypersensitivity illnesses in Western Norway •Research and Development •Rheumatology •Secretariat for hospital management •Surgical Clinic •The Cancer Center for Education and rehabilitation- CCER •The Norwegian Arthritis Registry - NorArthritis •The Norwegian Porphyria Centre NAPOS •Thoracic Medicine •Treatment abroad •Tuberculosis clinic •Women's Clinic

Slide 113

Slide 113 text

Questions at menti.com 7890 5555 Decompositions by business capabilities • Boundaries in the system follow the capabilities that the business offers its’ customers • Subdomain = Business Capability • Subdomain ≠ Function • Foundation for the product architecture

Slide 114

Slide 114 text

No content

Slide 115

Slide 115 text

No content

Slide 116

Slide 116 text

Data Ownership – Decomposition by Business Capabilities “Group” – psychiatry capability • Psychologist • Psychiatrist • Diagnosis • Reference to § in law • Patients • Appointments • Location for appointment outside hospital premises “Group” – medical clinical services • Physician • Diagnosis • Patients • Appointments

Slide 117

Slide 117 text

The cross-functional team! 1 QA 1 Product Owner 4 developers Field Specialist M issing! Working in legacy systems turns specialists into generalists!

Slide 118

Slide 118 text

Questions at menti.com 7890 5555 So…. Did we do anything about it? Nothing ☺ How committed are you to the model you have chosen?

Slide 119

Slide 119 text

Product architecture Which users are we tailoring our products for? The cost of customizing the product for diverse user groups The cost of developing separate products for separate user groups

Slide 120

Slide 120 text

Wrapping up

Slide 121

Slide 121 text

Questions at menti.com 7890 5555 So…. what have we learned? • Asking the right questions • Listening to the field specialists • Legacy Systems may significantly affect end-user’s language and mental model • Data Ownership for model validation • Context Mapping as a tool to discover value chains

Slide 122

Slide 122 text

Modeling Breakthrough! • There is always another model but…. modeling insights might come at most “inconvenient” times

Slide 123

Slide 123 text

Thank you!

Slide 124

Slide 124 text

Questions at menti.com 7890 5555 Photos • https://unsplash.com/@ratushny • https://unsplash.com/@jeshoots • https://unsplash.com/@mango_quan • www.vecteezy.com