Slide 1

Slide 1 text

Domain-​ Driven Architecture at Scale

Slide 2

Slide 2 text

Making my humble contribution to sociotechnical architecture and learning organization About me 01 02 03 04 Xin Yao Chief Software Architect @settling_mud Loves gardening, yoga, sci-​ fi, good food, hanging out with friends and family Lives in Copenhagen, Denmark [email protected]

Slide 3

Slide 3 text

Today's path collaborative modelling value coherence strategic correspondence recommoning (domain-​ driven platforming) conditions & consequences (and boundary spanning roles) Domain-​ Driven Architecture at Scale

Slide 4

Slide 4 text

Today's path collaborative modelling value coherence strategic correspondence recommoning (of services & platforms) conditions & consequences (and boundary spanning roles) Domain-​ Driven Architecture at Scale

Slide 5

Slide 5 text

End 2021 numbers Danske Bank A Nordic Bank

Slide 6

Slide 6 text

We were Spotified in 2020 Source: Henrik Kniberg & Anders Ivarsson Scaling agile

Slide 7

Slide 7 text

We reorganized ourselves to promote the desired domain structure

Slide 8

Slide 8 text

system designs & architecture communication structures in the organization (team structure) Conway's Law

Slide 9

Slide 9 text

target domain boundaries team structure (Conway's Maneuver) desired system architecture

Slide 10

Slide 10 text

Complex domains Legacy systems Cross-​ disciplinary view Integrated perspectives Reshuffled teams Tackling complexity with collaborative discovery common language compounding complexity DDD evangelists as facilitators

Slide 11

Slide 11 text

Domain story telling Event storming Context mapping Domain modelling Bounded contexts Hexagonal architecture Bounded context canvas Example mapping Wardley mapping Impact mapping User story mapping Team Topologies Northstar Framework Event modelling Domain driven data Service blueprints Collaborative discovery & design Lean value tree Specification by example Core domain chart Domain message flow Cynefin Behavior driven development

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

When we can understand the domain, we can influence it

Slide 14

Slide 14 text

Premature convergence Big design up front At the same time? domain team Domain discovery as disjointed, localized, timeboxed effort DDD workshops DDD workshops DDD workshops domain team domain team Impact things linearly Friction points

Slide 15

Slide 15 text

Coordination complexity drains teams' cognitive capacity Friction points A change initiative involves multiple teams, domains & systems domain domain domain domain Decision decentralized [autonomy] information not decentralized Dependencies and handoffs Optimized parts, not relations

Slide 16

Slide 16 text

Involved in many levels of design "burnout" Trying to have the whole System in my head Architect Pain Facilitate to integrate efforts from many teams

Slide 17

Slide 17 text

Where are we? collaborative modelling value coherence strategic correspondence conditions & consequences (and boundary spanning roles) "Domain Driven Architecture at Scale" Beyond structural coherence recommoning (domain-​ driven platforming)

Slide 18

Slide 18 text

Governance processes for alignment

Slide 19

Slide 19 text

A system is not the sum of its parts Alignment does not necessarily bring coherence Images by Ursus Wehrly. Inspiration from Sonja Blignaut "https://www.morebeyond.co.za/making-​ coherence-​ coherent/"

Slide 20

Slide 20 text

Large Scale Structure ... is a set of high-​level principles, rules, or both that establishes a pattern of design for an entire system. A language that allows the system to be discussed and understood in broad strokes. -Eric Evans "Systemic understanding in broad strokes"

Slide 21

Slide 21 text

... greatly clarifies the system without forcing unnatural constraints on model development. Because an ill-​fitting structure is worse than none, it is best not to shoot for comprehensiveness, but rather to find a minimal set that solves the problems that have emerged. Less is more. -​Eric Evans Large Scale Structure "models at scale must be minimal"

Slide 22

Slide 22 text

Common purpose serves as an invisible leader.. A common purpose, born of the desires and the activities of the group. -​Mary Parker Follett

Slide 23

Slide 23 text

Lead with the WHY, not the WAY - John Cutler

Slide 24

Slide 24 text

If you can't locate yourself in the narrative you feel disadvantaged. You also don't feel empowered to change the narrative. Without coherence, people will not understand their place in the system. - Jabe Bloom

Slide 25

Slide 25 text

Purpose as the connective tissue squad Tribe A squad squad squad Tribe B squad A new initiative OKR OKR OKR OKR OKR OKR OKR A shared and deeper understanding of the "why" How does my contribution matter in the big picture, over time? Find my place in the story

Slide 26

Slide 26 text

Linking strategy to everyday work We experimented with "the North Star Framework" input input input input North Star (The purpose) The value "bets" The work "bets" Opportunities Interventions leverage point solution agnostic, but opinionated actual work experiment epics stories 1-3 years 1-3 quarters 1-3 months 1-3 sprints

Slide 27

Slide 27 text

input input input input North Star The value "bets" The work "bets" Opportunities Speak to the customers goals and concerns xxx xxx Interventions Design the mobile/web UX to ask for customer consent Withdraw consent Author consent text leverage point solution agnostic, but opinionated actual work experiment epics stories 1-3 years 1-3 quarters 1-3 months 1-3 sprints Fast credit decision using account transaction history with minimal manual input [Trust/Breadth] How many customers trust us with their data? Facilitate a trust-​ building and hassle free consent experience [Data] How can we build a usable & compliant PSD2 infra? Source, store and serve PSD2 data compliantly [Accuracy & compliance] How can we calculate an accurate budget? Make accurate & invidualised budget using transaction data [Engagement & Transparency] How can we engage customer to validate budget? Engage customers in a "conversation" to validate prefilled budget items & enable a holistic overview of customer's finances [Efficiency/speed] How fast can a customer succeed with her goal? Increase credit decision automation by using transaction data to cut down on manual rules as well as customer input questions Expand consent Collaboratively kickoff complex initiatives An field example: the PSD2 initiative

Slide 28

Slide 28 text

when [a car buyer] is able to [get a credit decision really fast after he has given PSD2 consent] when Customer is able to see and validate budget When the customer has to answer fewer questions he/she is able to get credit faster and with less hassle Happy when I see that the information I filled in once still is there. (Kids, Housing type, etc.) Less annoyed due to fewer questions, more help with debt information when a customer experience a successful journey, they are likely to return when [a car buyer] is presented with prefilled information and required to answer only a few questions Happy that I get help in accesing debt information provided to public authorities (by enabling eTax combined with PSD2) when a customer is able to drive away with a new car [PSD2 design sprint] empathy mapping - chart the path through a customer's emotional journey Reframe compliance requirements in the customer context Human-​ centered design

Slide 29

Slide 29 text

Model fragments Language drifts Friction points Difficult to integrate new information Are we still solving the right problem? Temporal anomoly?

Slide 30

Slide 30 text

Successful problem solving requires finding the right solution to the right problem. We fail more often because we solve the wrong problem than because we get the wrong solution to the right problem. -​Russel Ackoff, "Redesiging the Future" Solving the right problem?

Slide 31

Slide 31 text

Where are we? collaborative modelling value coherence strategic correspondence conditions & consequences (and boundary spanning roles) "Domain-​ Driven Architecture at Scale" recommoning (domain-​ driven platforming) "understand to influence" "find my place in the story" "alternate realities & possible futures"

Slide 32

Slide 32 text

Coherence vs. correspondence Truth is what coheres with the rest of our knowledge. "Theories of truth (truth=a useful model)" Credit: Jabe Bloom Coherence Correspondence Truth is what corresponds to facts. Some facts are outside of our knowledge.

Slide 33

Slide 33 text

Future Cone reinterpretated by Jabe Bloom Help us toward Coherence Help us move toward Correspondence "How do we allow more possibilities to become plausible or probable"

Slide 34

Slide 34 text

A field example "Navigating toward correspondence"

Slide 35

Slide 35 text

Personal customer A fast & affordable financing solution Understand my current economy Automated current budget User User need Capabilty notation

Slide 36

Slide 36 text

Personal customer An affordable financing solution Understand my current economy UX to provide customer data and consents View & edit budget Automatic budget calculation Automated current budget "User" User need Capabiilty notation

Slide 37

Slide 37 text

Personal customer A fast & affordable financing solution Understand my current economy View & edit budget UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 Initiative 1 Budget API for housing journey 2020 Team 2 Team 1 Automated current budget

Slide 38

Slide 38 text

Personal customer A fast & affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation View & edit budget Team 1 UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 Several banks got orders from the Danish Financial Supervisory Authority budget must be individualised Initiative 1 Budget API for housing journey 2020 Automated current budget risk of losing license to operate

Slide 39

Slide 39 text

Personal customer A fast & affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods 1 1 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Buy - quick compliance Team 1 Team 2 Team 2 View & edit budget Team 3 2 Automated current budget

Slide 40

Slide 40 text

Why didn't initiative 2 kill initiative 1?

Slide 41

Slide 41 text

Personal customer A fast & affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 t Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Buy - quick compliance Vendor has monopoly now - very expensive Questionable vendor solution quality View & edit budget 2 Team 1 Team 2 Team 3 Automated current budget No funding to use vendor solution in all financing journeys

Slide 42

Slide 42 text

Personal customer A fast & affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 Buy - quick compliance Estimate using account transaction data View & edit budget 2 t Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 "Build" individualised budget in legacy systems 2022 Team 4 Team 3 Team 2 3 Team 1 Automated current budget

Slide 43

Slide 43 text

Personal customer A fast & affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 1 Buy - quick compliance Estimate using account transaction data View & edit budget 2 t Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 compliance more technical debt + Automated current budget "Build" individualised budget in legacy systems

Slide 44

Slide 44 text

Personal customer A fast & affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 4 Estimate using account transaction data View & edit budget 2 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 4 2022 Initiative 4 "Build" individualised budget in new Budget API 4: migrate logic to with new architecture Automated current budget "Build" individualised budget in legacy systems

Slide 45

Slide 45 text

Personal customer A fast & affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 4 Estimate using account transaction data View & edit budget 2 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 4 2022 Initiative 4 4: Connect with initiative 1 with new architecture Complex negotiation Automated current budget "Build" individualised budget in new Budget API "Build" individualised budget in legacy systems

Slide 46

Slide 46 text

Personal customer An affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 4 Estimate using account transaction data View & edit budget 2 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 4 2022 Initiative 4 5 ??? Initiative 5 ? "Build" a full-​ stack budget product "Build" - budget domain as internal product Higher order capability Our credit and risk expertise Full-​ stack budget solution Our credibility Automated current budget "Build" - budget domain as external product "Build" individualised budget in new Budget API "Build" individualised budget in legacy systems lower dependency & negotiation complexity

Slide 47

Slide 47 text

Personal customer A fast & affordable financing solution Understand my current economy Regulators Enforce compliant credit practice Individualised budget calculation UX to provide customer data and consents Automatic budget calculation Statistical estimation methods Team 2 1 4 Estimate using account transaction data View & edit budget 2 Initiative 1 Budget API for housing journey Initiative 2 "Buy" - quick compliance 2020 2021 Initiative 3 2022 Team 4 Team 3 Team 2 3 Team 1 4 2022 Initiative 4 5 ??? Initiative 5? "Build" - budget domain as internal product "Build" - budget domain as external product Can we compete on speed and cost? Someone else thinking similar thoughts? Do we have the skills to pull it off? Automated current budget "Build" individualised budget in new Budget API "Build" individualised budget in legacy systems "Build" a full-​ stack budget product

Slide 48

Slide 48 text

Being able to ask better questions can improve our odds of deciding and acting with correspondence to an emergent reality.

Slide 49

Slide 49 text

Friction points Revenge of Conway's Law reinforced by the agile mandate of team autonomy Team autonomy gets in the way of good design Let's reshape architecture to fit the team boundaries, so we can work independently of other teams. Shipping org charts

Slide 50

Slide 50 text

Efforts pulling apart, not together Local optimization, just at the initiative level The problem is systemic Consumer finance journey credit card, consumer loan... "automation" competing agendas good will hunting? an initiative an initiative Current Budget (DK) Housing journey buying & owning a home Asset finance journey car, boat, auto-​ camper...

Slide 51

Slide 51 text

Look at the next larger context Source: Ruth Malan (adapted to context) initiatives individual contributors teams enterprise scope of complexity decisions across boundaries systems relationships

Slide 52

Slide 52 text

Where are we? collaborative modelling value coherence strategic correspondence conditions & consequences (and boundary spanning roles) "Domain-​ Driven Architecture at Scale" recommoning (domain-​ driven platforming)

Slide 53

Slide 53 text

The Three Economies "More than a single economic logic at play in large enterprises"

Slide 54

Slide 54 text

Increase variety (variety=intended difference in outcome) Examples: Customer experience Customer facing processes Products Digital convenience Value drivers Efficiency drivers

Slide 55

Slide 55 text

Increase variety (variety=intended difference in outcome) Examples: Customer experience Customer facing processes Products Digital convenience Value drivers Efficiency drivers Decrease variation (variation: unintended difference in output) Examples: Consumable Primitives Compute Storage Network Database

Slide 56

Slide 56 text

Increase variety (variety=intended difference in outcome) Examples: Customer experience Customer facing processes Products Digital convenience Value drivers efficiency drivers Decrease variation (variation: unintended difference in output) Examples: consumable primitives Compute Storage Network Database Standardize to differentiate (Help others differentiate by making myself less different) Examples: resources gain value when shared Well-​ formed functions (APIs) & data Repeatable business processes Standardized configurations of primitives Other ways of "commoning" resources to accelerate differentiation value & efficiency drivers

Slide 57

Slide 57 text

Increase variety (variety=intended difference in outcome) Value drivers efficiency drivers Decrease variation (variation: unintended difference in output) value & efficiency drivers Recommoning (Re-​platforming) Examples: Customer experience Customer facing processes Products Digital convenience Examples: consumable primitives Compute Storage Network Database Examples: resources gain value when shared Well-​ formed functions (APIs) & data Repeatable business processes Standardized configurations of primitives Other ways of "commoning" resources to accelerate differentiation Standardize to differentiate (Help others differentiate by making myself less different)

Slide 58

Slide 58 text

Recommoning: Platform redefined ... as an opportunity to transform parts of the value chain exhibiting recurring patterns to shared services Domain-​ driven platforms

Slide 59

Slide 59 text

Housing journey Domain-​ driven development environments Consumer finance journey Asset finance journey Common credit processes Isolate complexity Reduce cognitive load for differentiation teams Ensure consistency & compliance Enable configurability & adaptability Bridge differentiation and scale economies for resilience Infrastructure domains Exists to enable differentiation Exists to increase variety Exists to decrease variation Domain-​ driven data platforms ("Data products") Domain-​ Driven Platforms Security domains

Slide 60

Slide 60 text

Systems thinking is a core skill in recommoning differentiation squad platform squad Another differentiation squad not in current initiative ... how can the platform design improve the optionality for more differentiation squads? Current Initiative optimize in "lines" platform squad differentiation squad platform team optimize in "networks" differentiation squad differentiation squad differentiation squad

Slide 61

Slide 61 text

What is better shared - the common ground? How can we simplify for the common good? How can we make a supple design less shakable by changes in the environment? What should be configurable? Where is the best sociotechnical boundary? Recommoning needs domain-​ driven architecture Consumer finance journey credit card, consumer loan... "automation" an initiative an initiative Current Budget (DK) Housing journey buying & owning a home Asset finance journey car, boat, auto-​ camper... How can we craft deliberate dependencies? to tackle the sociotechnical complexity at scale

Slide 62

Slide 62 text

Where are we? collaborative modelling value coherence strategic correspondence conditions & consequences (and boundary spanning roles) "Domain-​ Driven Architecture at Scale" recommoning (domain-​ driven platforming)

Slide 63

Slide 63 text

Architecture at scale is to create good conditions blueprint compre-​ hensive structures Negotiate common ground Architect by artefacts ("views") collaborative discovery & design adaptive capacity to integrate information (OODA) be better at systems thinking Think in Conditions-​ consequences Think in Means-​ ends Upfront design decisions Hard to reverse

Slide 64

Slide 64 text

Boundary-​ driven architecture for requisite coherence Source: Jabe Bloom Inside Inside Inside In-​ between "Look at what's in between, the inside will adapt"

Slide 65

Slide 65 text

Minimalistic architecture runway Architecture Runway Conceptual contour has has Example A common language weakly structured - don't go for finality sticky notes architecture Boundary objects

Slide 66

Slide 66 text

My personal paradox Super analytical Super outcome driven An architect archetype?

Slide 67

Slide 67 text

Staying with the struggle A team comes to me --> the first immediate impulse is to solve the problem for them A team comes to me --> how can I help them to find the best solution? Facilitate a space for conversation and negotiation to continue. Stay together in the struggle. Absorb feedback signals. "From advocacy to inquiry" A team comes to me --> take a step back. My job is not solving the problem for them. It's not even helping them find the answer here and now.

Slide 68

Slide 68 text

A new frame for being an architect Solve the right problem the right way Cultivate the conditions for good consequences Maker Multiplier Inspired by: Patrick Kua

Slide 69

Slide 69 text

Enabling Interact with complexity My own role DDD Evangelist Team architect & "cluster" architect Listen to the wisdom of the system Socialize knowledge and practice Build relation, trust, safety Speak the common language linear non-​linear Less stressed about outcome Expose my own thinking effectively (advocacy) .. and make that thinking open to the influence of others (inquiry) Facilitate conversation & negotiation

Slide 70

Slide 70 text

No content

Slide 71

Slide 71 text

What we've covered today collaborative modelling value coherence strategic correspondence recommoning (domain driven platforming) conditions & consequences (and boundary spanning roles) "Domain-​ Driven Architecture at Scale" "understand to influence" "find my place in the story" "standardize to differentiate" "alternate realities & possible futures" "listen to the wisdom of the system"