Slide 1

Slide 1 text

Practical Domain-Driven Design Case Study From Healthcare Booster Conference 2025 Mufrid Krilic, Domain-Driven Design Coach CoWork, Norway

Slide 2

Slide 2 text

My motivation for giving the 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 3

Slide 3 text

What about you? • Could this talk be of any use to you? • What is your motivation?

Slide 4

Slide 4 text

Is coding your main motivation? • Highlights in this talk: • Structuring the code base • Data ownership • Naming things

Slide 5

Slide 5 text

Is architecture your main motivation? • Highlights in this talk: • Finding boundaries • Complexity analysis

Slide 6

Slide 6 text

Is UX your main motivation? • Highlights in this talk: • Understanding relation between user perspective and inner system workings • Tools to enhance user-centered communication within the team

Slide 7

Slide 7 text

Is testing your main motivation? • Highlights in this talk: • Answering the question • Who is the user? • Capturing the user context under which system is being used • the real-life test setup

Slide 8

Slide 8 text

Is team leadership your main motivation? • Highlights in this talk: • What cross-functional team really means? • Developing technology strategies based on modeling breakthroughs

Slide 9

Slide 9 text

Let’s start with the story….

Slide 10

Slide 10 text

Four Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning stakeholders’ perspectives with code structure 4. Modeling breakthrough

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Questions at menti.com 6720 3580 ▪ For patients with identical diagnoses sometimes the treatment has the best effect when done in a group of patients ▪ Examples: • 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 6720 3580 The business goal constraint • “Replace the legacy system” • It must work “everywhere” and for “everyone”

Slide 15

Slide 15 text

Questions at menti.com 6720 3580 Legacy system constraint Works “everywhere” and for “everyone”

Slide 16

Slide 16 text

Questions at menti.com 6720 3580 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 6720 3580 Knowledge Constraint Rather limited domain knowledge in the team • Developers • Tester

Slide 18

Slide 18 text

Questions at menti.com 6720 3580 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

Four Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning stakeholders’ perspectives with code structure 4. Modeling breakthrough

Slide 21

Slide 21 text

Strategies to Learn Complex Domains

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Questions at menti.com 6720 3580 Discover Pain-Points • Identify the areas which “hide” the pain-points • Domain experts might hint about “difficult” areas without being very precise about it

Slide 24

Slide 24 text

Questions at menti.com 6720 3580 Scenario = Communication Opportunity! • Everyone in the team has a stake in scenarios! • Exploit scenarios to build shared understanding in the team

Slide 25

Slide 25 text

Questions at menti.com 6720 3580 How to communicate scenarios? • Everyone in the team might prefer different methodology • User Journeys • Sequence diagrams • Test Cases • etc.

Slide 26

Slide 26 text

Questions at menti.com 6720 3580 How to communicate scenarios? • Something visual and simple • Meaning something that does not require any “trade-specific” knowledge • Syntax can be learnt on-the-fly • As close to the natural language as possible

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Questions at menti.com 6720 3580 ▪ Group Therapy: Setting up a group • Planning ▪ Group Therapy: Conducting group appointments • Check-in process Domain specific areas that “hide” difficult problems

Slide 29

Slide 29 text

Group Therapy Planning Somatic Department Rehabilitation after lifestyle affected diagnosis

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Group Therapy Planning Psychiatric Department Adult Psychiatry

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

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

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

No content

Slide 48

Slide 48 text

Questions at menti.com 6720 3580 Four Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning stakeholders’ perspectives with code structure 4. Modeling breakthrough

Slide 49

Slide 49 text

Domain Problem Decomposition

Slide 50

Slide 50 text

Questions at menti.com 6720 3580 Data Ownership • A business concept is defined as a set of data properties • This represents a model of the business concept in the system

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

Group Treatment in Healthcare

Slide 53

Slide 53 text

Domain Model

Slide 54

Slide 54 text

Data Ownership – Functional Decomposition • “Group” is defined as a set of properties needed to perform all the functions

Slide 55

Slide 55 text

Data Ownership – Functional Decomposition • Definition of “Group” • 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 56

Slide 56 text

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

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

Who is the user?

Slide 59

Slide 59 text

No content

Slide 60

Slide 60 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 61

Slide 61 text

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

Slide 62

Slide 62 text

No content

Slide 63

Slide 63 text

Who is the user?

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 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 66

Slide 66 text

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

Slide 67

Slide 67 text

Four Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning stakeholders’ perspective with code structure 4. Modeling breakthrough

Slide 68

Slide 68 text

Code Base Structure

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

Questions at menti.com 6720 3580 Flexibility within a boundary The degree of customization in a system is constrained to the boundaries

Slide 72

Slide 72 text

What did we do?

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

Questions at menti.com 6720 3580 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 76

Slide 76 text

Multiple Models Reflected in Code Structure

Slide 77

Slide 77 text

Boundaries by Abstractions Use appropriate abstraction: • Repository • Namespaces

Slide 78

Slide 78 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 79

Slide 79 text

Four Step Journey 1. Strategies to learn complex domains 2. Domain problem decomposition 3. Aligning different perspectives with Bounded Contexts 4. Modeling breakthrough

Slide 80

Slide 80 text

Finally! Understanding the Domain

Slide 81

Slide 81 text

Questions at menti.com 6720 3580 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 82

Slide 82 text

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

Slide 83

Slide 83 text

Questions at menti.com 6720 3580 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 84

Slide 84 text

Group Planning Somatic Department

Slide 85

Slide 85 text

Group Planning Psychiatric Department

Slide 86

Slide 86 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 87

Slide 87 text

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

Slide 88

Slide 88 text

No content

Slide 89

Slide 89 text

No content

Slide 90

Slide 90 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 91

Slide 91 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 92

Slide 92 text

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

Slide 93

Slide 93 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 94

Slide 94 text

Questions at menti.com 6720 3580 This is where the strategy comes into play • New insights and breakthroughs are input for developing technical and product strategies

Slide 95

Slide 95 text

Big re-write? • Recognize the opportunities where you can steer the direction of the product development towards the strategic goals • Adapt the product model to move one step closer to the strategic goal • one opportunity at a time

Slide 96

Slide 96 text

Wrapping up

Slide 97

Slide 97 text

Applying Domain-Driven Design is about providing optionality! Choosing the right model for your context

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

Questions at menti.com 6720 3580 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

Slide 100

Slide 100 text

Thank you and reach out! • About me • Coaching individuals, teams and organizations • Helping Build Domain-Driven Product Organizations • Feel free to reach out! Helping Build Domain-Driven Product Organizations

Slide 101

Slide 101 text

Thank you!

Slide 102

Slide 102 text

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