Slide 1

Slide 1 text

Xin Yao, Keynote JAX 2024 Navigating Sociotechnical Complexity with DDD and Friends

Slide 2

Slide 2 text

DDD & architecture consultancy DDD output + + Sociotechnical design + Systems leadership + Who is Xin? Undercover change agent through DDD and architecture Xin Yao @settling_mud [email protected] @[email protected] /in/xinxin/ delay + delay Independent consultant

Slide 3

Slide 3 text

Navigating sociotechnical complexity Today's path Software-​ centric systems design 1. Work design (Social systems) 2.

Slide 4

Slide 4 text

I imagined a neat and tidy software career

Slide 5

Slide 5 text

Variables Algorithms

Slide 6

Slide 6 text

Software is logical, and "compiles" Right or wrong answer a mathematically provable range of optimized solutions or at least Deterministic solution

Slide 7

Slide 7 text

The universe is a giant clock. The laws of nature act like gears and springs, causing everything to move in a predictable and orderly way. -- Issac Newton (Not exactly, but kinda the exact words)

Slide 8

Slide 8 text

My first real-​ life software project Fixed price software delivery in a consultant team Thorough requirement spec from client Client analysts answering our queries, mostly by email Software architecture blueprint upfront Waterfall - Project lead had regular checkin with client Great team - we delivered on time! Domain: insurance workflow

Slide 9

Slide 9 text

We applied design patterns

Slide 10

Slide 10 text

Single Responsibility Principle Open/Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion Principle Image Credit: Robert Ecker We applied SOLID principles

Slide 11

Slide 11 text

But, our software never made it to the users

Slide 12

Slide 12 text

The client's analysts misunderstood (and oversimplified) core user needs. We made the wrong interpretation of the client analysts' email response to our questions. The client's business sponsor didn't align with the parent company about starting the project. No one told us a mandatory frontend framework had to be used. Rewrite considered too costly. Project X dropped, shelved, and forgotten. We (the consultant team) got paid well. We got praised for on-​ time delivery. Lots of tech learning and experiences, so why are we not feeling happy? So what was the rub

Slide 13

Slide 13 text

Design cannot happen in a closed system My existential conundrum Long way from neat and tidy to useful software <> "giant clock"

Slide 14

Slide 14 text

Software's value is always evaluated in context Context Software Software systems are open systems

Slide 15

Slide 15 text

Software's context is full of decisions that can go wrong Picks the wrong direction Builds things that don't matter Builds wrong things Incidents & outages Builds things the wrong way Credit: Jabe Bloom (adapted to context) Which area(s) do you see higher risks in your organization, where well-​ meaning decisions do not end up having the desired impact? Leadership (team) Product (team) Development (team) Operations (team) Architecture (team)

Slide 16

Slide 16 text

Leadership (team) Product (team) Development (team) Operations (team) Architecture (team) Picks the wrong direction Builds things that don't matter Builds wrong things Incidents & outages Builds things wrong Decisions are interdependent The whole story How does each part understand the whole story? Architect Developer

Slide 17

Slide 17 text

Software's context is full of human relations Credit: Henrik Kniberg (Adapted) Maker User Decision makers handoffs/intermediaries Time (Delay in feedback) Confused language enters software and hurts its maintainability

Slide 18

Slide 18 text

Socio- technical Sociotechnical complexity Complexity in "Parts" (e.g. tasks, code, Jira tickets) Credit: University of Leeds (Sociotechnical Center) Complexity in "Relations" (e.g. interfaces, meetings, decisions, practices) Infrastructure People Technology Culture Processes /Procedures Goals / Metrics ...requires us to think in systems

Slide 19

Slide 19 text

What many people fail to realize is that the relationship is the delivery system of anything we wish to accomplish. -- Peter Block

Slide 20

Slide 20 text

Domain-​ Driven Design (DDD) as a practice Visually model the whole-​ part, part-​ whole relations

Slide 21

Slide 21 text

Who work and create value together? Who else do we need to align understanding with? DDD DDD - Philosophy & Practices Credit: Paul Rayner, Eric Evans What software are we building? Why are we building it? How do we build and connect software - for long-​term changeability? Strategic Design Tactical design Visual Collaborative Modeling (models) (models) Ubiquitous (attention to) Language

Slide 22

Slide 22 text

Ever wondered why event storming works magic, almost every time?

Slide 23

Slide 23 text

See the forest and the trees But not at the same time And not like this

Slide 24

Slide 24 text

Complex Systems scale by decomposition to the lowest consistent level of granularity, and recombination, not by aggregation or imitation. -- Dave Snowden Knowledge is created, not shared Granular discovery Distributed cognition Dis-​ intermediation of data Principles of managing complexity (Credit: Dave Snowden)

Slide 25

Slide 25 text

Linking strategy to everyday work Good experience with "the North Star Framework" input input input input North Star (The purpose) The value "bets" The work "bets" Opportunities Interventions My ticket leverage point solution agnostic, but opinionated actual work experiment epics stories 1-3 years 1-3 quarters 1-3 months 1-3 sprints Model of strategy Model of strategy deployment Strategic Design Visual Collaborative Modeling (models)

Slide 26

Slide 26 text

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 Strategic Design Visual Collaborative Modeling (models)

Slide 27

Slide 27 text

Joy in work comes from understanding why your work is important. Not from work, but from the knowledge of who's going to use it. -- W. Edward Deming

Slide 28

Slide 28 text

Lead with the WHY, not the WAY Architect for value coherence Credit: John Cutler

Slide 29

Slide 29 text

A DDD workshop series Strategic Design (models) Tactical design (models) Visual Collaborative Modeling the WHY the WAY

Slide 30

Slide 30 text

Navigating sociotechnical complexity Today's path Software-​ centric systems design 1. Work design (Social Systems) 2.

Slide 31

Slide 31 text

Work-​ centric Sociotechnical complexity Work design Sociotechnical mirroring Agile process & tooling Inverse Conway Spotify model Learned helplessness Skepticism Unknowability A big divide Pessimism Non-​linearity Lack of agency

Slide 32

Slide 32 text

Human systems are too complex to manage Let's have the next joke about SAFe, anyone?

Slide 33

Slide 33 text

YOU CAN'T FIX WHAT YOU CAN'T SEE

Slide 34

Slide 34 text

Credit: Jim Benson See the Whole System Tactical info Strategic Info Cultural Info what is going on? what needs attention now? Where are we going? Where is my place in the story? How is my team a team? What does good look like? What is meaningful for me? (Agency) Example: 7 Elements of Visual Management Purposeful models Software-​ centric design Discoveries Decisions Shared understanding Essential skill in Software design State Triggers Visualized work Direction Narrative Culture Professionalism Identity Emergencies Action Improvement Opportunity Discovery need Shared work Complex work Current WIP Who is working Who is collaborating What is ready for release What is stuck How is our psychological flow Strategy Plans & Backlogs Upcoming work options Onboarding Upskilling Team identity Interaction & meetings Human repair Social contracts Improvement Correction Learning Quality Who am I and what are my values? How is work meaningful? How is work developmental? Agency Spheres of influence Affordance Visualizing Work as a Social Architecture (UI layer) (Business layer) (Infrastructure layer)

Slide 35

Slide 35 text

Share the Whole System Credit: Milestone Systems, Systems Architecture Team Team Daily Stand-​ up Prompts what is going on? what needs attention now? Where are we going? Where is my place in the story? How is my team a team? What does good look like? What is meaningful for me? (Agency) Example: 7 Elements of Visual Management Purposeful models Software-​ centric design Discoveries Decisions Shared understanding Tactical Cultural Strategic

Slide 36

Slide 36 text

Pervasive but non-​ invasive visual prompts See & discuss essential elements of work A visual feedback loop provide space to (+) Calm, profession, non-​ stressful way of working enables (+) Reveal gaps for improvement & learning increases psychological safety to (+) motivates the use of (+) "You can't fix what you can't see"

Slide 37

Slide 37 text

Prompts for dialog Roadmaps Backlogs Plans Dailys Meetings Workshops Design artifacts, events, processes as

Slide 38

Slide 38 text

Multi-​ year roadmap Visualize work as a system Linear Execution Governance Continuous Roadmapping (Now-​ Next-​ Later) In-​ the-​ moment systems leadership Think in Conditions-​ consequences Think in Means-​ ends Big Hairy Goal Target Architecture Blueprint From Prescriptive to Generative Architecture Build the system so it can take care of itself Reflective conversations & collective reasoning Gap Thinking Ideal Present Thinking Gap Thinking Credit: Jabe Bloom

Slide 39

Slide 39 text

What if I am not a leader How do you change the world? One room at a time. Which room? The one you're in. ~ Peter Block

Slide 40

Slide 40 text

Software-​ centric Sociotechnical complexity Work-​ centric Sociotechnical complexity Software design Work design DDD Product Thinking Strategy COMO DevOps Software Architecture DDD Reflective Conversation Visual modeling Sociotehnical Architecture Systems Thinking Complexity Theory Constraint modeling Languaging Sense making DDD & friends (i.e. adjacent practices) can be catalytic enablers in sociotechnical design. Emotioning

Slide 41

Slide 41 text

What is needed in sociotechnical systems changes technological sophistication human sophistication modeling analysis simulation visualization synthesis categorization advocacy agency listening inquiry sociotechnical design emotional intelligence systems thinking system dynamics modeling technological advancements architecture institutional learning systems leadership productivity mental models constraints modeling affordance

Slide 42

Slide 42 text

Thank you [email protected] @[email protected] /in/xinxin/ @settling_mud