Navigating sociotechnical complexity with DDD & friends
Xin Yao, KanDDDinsky 2024, Berlin
Slide 2
Slide 2 text
DDD & architecture
consultancy
DDD Output
+
Reflective
conversations
+
Collective
change
capacity
+
[A little about me]
Change Smuggler, through DDD and architecture
Xin Yao
@settling_mud
[email protected]
@[email protected]
/in/xinxin/
delay
+
delay
Independent consultant
delay
Software
quality &
changeability
+
delay
+
Technical improvement Social improvement
DDD
+
Slide 3
Slide 3 text
Sociotechnical
complexity
Sociotechnical
patterns
Today's path
Navigating sociotechnical complexity with DDD & friends
Sociotechnical
change practice
Slide 4
Slide 4 text
Sociotechnical
complexity
Sociotechnical
patterns
Today's path
Navigating sociotechnical complexity with DDD & friends
Sociotechnical
change practice
Slide 5
Slide 5 text
A complex reality permeated by software
Software industry matures
Every business is a software business
Aging companies with aging software
Compounding social and technical complexity
Slide 6
Slide 6 text
Decouple and Connect
the paradox in large-
scale software development
Slide 7
Slide 7 text
Who work and create value
together?
Who else do we need to align
understanding with?
DDD
DDD was born sociotechnical
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
... to decouple and connect
business complexity technical complexity
social complexity
Slide 8
Slide 8 text
Many shades of complexity in software work
How do we talk about things being
complex in different ways?
Slide 9
Slide 9 text
Complex is not the same as Complicated
A
B
C
A
B
C
D
System properties predictable
The whole is greater than the sum of its parts
Knowable through analysis ("Sense, Analyze")
Many moving parts sum up to the whole
Plans & Policies ("Respond")
Knowable through interaction ("Probe")
System properties emergent, unpredictable
Experiments & Patterns ("Sense, Respond")
Repeatable, Consistent ("Scale best practice") Unrepeatable ("Hindsight does not lead to foresight")
A
B
C
D
E
x
emergent
new
element
disappeared
relation
emergent
relation
Cause -> Effect
A
B
C
Complicated Complex
Emergence
unintended
change in
relation
Credit: Cynefin, Dave Snowden
new
element
new relation
unintended
change in
element
Slide 10
Slide 10 text
A
B
C
A
B
C
D
System properties predictable
The whole is greater than the sum of its parts
Knowable through analysis ("Sense, Analyze")
Many moving parts sum up to the whole
Plans & Policies ("Respond")
Knowable through interaction ("Probe")
System properties emergent, unpredictable
Experiments & Patterns ("Sense, Respond")
Repeatable, Consistent ("Scale best practice") Unrepeatable ("Hindsight does not lead to foresight")
A
B
C
D
E
x
emergent
new
element
disappeared
relation
emergent
relation
Cause -> Effect
A
B
C
Complicated Complex
Emergence
unintended
change in
relation
Credit: Cynefin, Dave Snowden
new
element
new relation
unintended
change in
element
Ferrari vs. Brazilian rain forest
Slide 11
Slide 11 text
Are organizations working with software more like
complex or complicated systems?
Slide 12
Slide 12 text
Are organizations working with software often
managed as complex or complicated systems?
Slide 13
Slide 13 text
Is a software system more of a complex or
complicated system?
Slide 14
Slide 14 text
Work is a social system with technical subsystems as parts
Social systems
(Complex)
Technical systems
(Complicated/Liminal*)
[software]
[organization]
Business environment
(Complex)
*liminal: in between complex and complicated
(credit: Dave Snowden)
[Open Sociotechnical System]
Slide 15
Slide 15 text
Fluency Stage
Technical practice vs. social/sociotechnical practice
Evolution
Genesis Custom Product Commodity
(+rental) (+utility)
1 2 3 4
Technical
innovation
Mature
technical
practice
Everything evolves with time
Social
practice?
Sociotech
practice?
?
software
design
Novel Emerging Good Best
Slide 16
Slide 16 text
If the ancient Greeks could come back now and walk among us, they would
not understand much of our technology and our science. It would be very
foreign. But they would be quite at home in our social problems - wars,
politics, economics, various kinds of difficulties.
~ Jay Forrester
We haven't evolved much
in our understanding of social systems
Slide 17
Slide 17 text
Scientific management
A most impactful industrial age legacy
1856-1915
Frederick Taylor
(1856-1915)
In the past the man has been first; in
the future the system must be first.
Management is a true science, with laws
as exact and as clearly defined as the
fundamental principles of engineering.
Slide 18
Slide 18 text
Professional planners provide a grand design of work
Material, capital & people with skills as production factors
Design of work Production factor
Slide 19
Slide 19 text
Assign skills to work posts
to optimize labor productivity and economic efficiency
Slide 20
Slide 20 text
Scientific management has been rebranded a
lot of times, and the most modern version is ...
Slide 21
Slide 21 text
The Inverse Conway Maneuver
Target
architecture
boundaries
Team boundaries
The new black in organization design
Sociotechnical mirroring
Slide 22
Slide 22 text
(Example: governance process in a corporate change initiative)
Our default social intervention mode is analytical
divide-
and-
conquer
Slide 23
Slide 23 text
Our management language is full of
engineering metaphors
Fix
problem
Drive
change
Control
process
Align
thinking
Scale
practice
Measure
performance
Run
a company
Produce
outcome
Slide 24
Slide 24 text
Most of us acknowledge that social systems are
more complex, uncertain and unpredictable ...
Complex is not the same as Complicated
Slide 25
Slide 25 text
The traits of complexity are anxiety inducing.
Our human brain is hard-
wired to fear the uncertain, unpredictable,
uncontrollable, ambiguous.
But we don't want to think of our work as a Brazilian rain forest
a randomly evolving mess of emergent relations that keep changing
Slide 26
Slide 26 text
We would rather treat organizations as complicated systems - many moving
parts and relations, but predictable, plannable, controllable.
We are drawn to solutions that promise to divide-
and-
conquer human
communication as decomposable software APIs.
We wish our organizations were complicated Ferraris
Slide 27
Slide 27 text
Planning and process - a collective defense against our
existential anxiety about uncertainty
No one loves big,
hairy plans.
But, reality gets
more complex &
uncertain -
inducing stress
We need plans to
break down big
problems into
manageable parts
We cannot step
into the future
without a plan
... and processes
to align the many
moving parts,
people and tasks
Plans & processes
make us feel safer,
in control, on the
same page
Credit: Steve Hearsum
Slide 28
Slide 28 text
We identify with our "role" and feel alienated
playing our "part" at the same time
The
planning
roles
The
executing
roles
(Example: governance process in a corporate change initiative)
Slide 29
Slide 29 text
Downgrade social complexity to technical complication?
Large-
scale Agile practice
Sociotechnical mirroring
Agile frameworks
Inverse Conway
Spotify model
Learned
helplessness
Skepticism
Unknowability
A big divide
Pessimism
Dehumanizing
Lack of agency
Reorg
Transformation initiative
Slide 30
Slide 30 text
Sociotechnical
complexity
Sociotechnical
patterns
Today's path
Navigating sociotechnical complexity with DDD & friends
Sociotechnical
change practice
Slide 31
Slide 31 text
Collaborative Modeling (COMO)
[Sociotechnical pattern from DDD]
See the forest
and the trees
Slide 32
Slide 32 text
We cannot find optimal software boundaries with
DDD
Confession of a Change Smuggler
in a complex domain with ever-
changing business logic
just
In the context of
architecture modernization
(aka. splitting the monolith)
Slide 37
Slide 37 text
Component A
Component B
DoThis (a, b, c, d)
Process 1
Service A
Process 1
Process 2
Service B
DoThis (a, b, c, d)
Monolith (Micro)Services
Decoupling by microservices?
Slide 38
Slide 38 text
Component A
Component B
DoThis (a, b, c, d)
Process 1
Service A
Process 1
Process 2
Service B
ThisRequested
(a, b, c, d)
ThisCompleted
(a, b, c, d)
Monolith Event-
Driven
Decoupling by messaging?
Slide 39
Slide 39 text
Component A
Component B
DoThis (a, b, c, d)
Process 1
Next tech
trend
du jour ?
Cloud repatriation - back to modular monolith?
Monolith
MFE? BFF? Actor?
Slide 40
Slide 40 text
It's so easy to go for superficial boundaries
and drop the deep conversations about
logical coupling
... and the underlying social boundaries and power distribution
COMO workshops for quality conversations
not fixed outcomes
Slide 41
Slide 41 text
Let's edit out the
uncomfortable
elements
[Sociotechnical pattern inspired by DDD]
Make the implicit
explicit
[technical design pattern]
Make the
undiscussable
discussable
[social design pattern]
Collaborative Modeling --> Reflective Conversation
Shame
Guilt
Anxiety
Fear
Resentment
Blame
Slide 42
Slide 42 text
Component A
Component B
DoThis (a, b, c, d)
Process 1
Component A
Process 1
Process 2
Component B
DoThis (a, b, c, d)
Monolith (Micro)Services
Social relational muscles to find software boundaries
Have we discussed the
social and technical
implications of passing
data around?
that give us the true freedom of change
Slide 43
Slide 43 text
Which conversations are we missing?
The 3 P's
Conversation about Purpose
What are we committed to creating together, rather
than making less bad?
Conversation about Paradoxes
How can we call out the organizational politics and
constraints, and still make difficult decisions?
Conversation about Power
How can we name our discomfort and feel powerful at
the same time?
The social, the relational, the contextual
Slide 44
Slide 44 text
Sociotechnical
complexity
Sociotechnical
patterns
Today's path
Navigating sociotechnical complexity with DDD & friends
Sociotechnical
change practice
Slide 45
Slide 45 text
Sometimes the social+technical is just
too big of an "official" scope of work
DDD
"process consultant"
"process architect"
Slide 46
Slide 46 text
DDD
Process
DDD as a process to start & anchor conversations
Methods
Principles, Patterns, Practices
Facilitate change & communication
(design discipline)
Domain-
driven discovery is sometimes
employed as a process model
in change initiatives
Slide 47
Slide 47 text
Example: Architecture modernization work at Milestone Systems
Slide 48
Slide 48 text
Smuggle social sense-
making in
technical design processes
(e.g. collaborative modeling sessions)
[Sociotechnical change pattern]
Slide 49
Slide 49 text
* Action learning DDD concepts
while building a domain language
* Hands-
on Strategic DDD in
subdomain analysis exercise.
* Hands-
on Tactical DDD in real
use cases - aggregate extraction,
domain models, state machines and
ports & adapters ...
DDD Learning
Outcome
* Sense making (bridge pent-
house
and engine room)
* Visual negotiation
* Collaborative moves
* My/our point of influence
(agency)
Social
Outcome
* Convergence on subdomain
boundaries in the M&MS area
* (Almost) Convergence on teams'
subdomain ownership - as
modernization baseline
* Identified "don't belong here"
subdomains
Material
Outcome
Spread awareness
Experience reports as lightning talks at All-
Hands
Example: Architecture modernization work at Milestone Systems
Slide 50
Slide 50 text
Safe-
to-
fail change probes as Trojan Mice
in tech-
fueled social systems
"Trojan Mice"
https://whatsthepont.blog/2020/02/09/trojan-mice-in-900-seconds/
[Sociotechnical change pattern]
Slide 51
Slide 51 text
Smuggle small Trojan Mice inside a big Trojan Horse
Large change program
Small social change
experiments
[Sociotechnical change pattern]
The original model The new model
Slide 52
Slide 52 text
Real collaboration - we build on each other's moves
[Sociotechnical change pattern]
David Kantor: Four Player Model
Oppose
Observe
Move Follow
Challenge
Surface
differences
Devil's
advocate
Detached
Perspectives
Reflect
Analyze
Add
Appreciate
Support
Expand
Implement
Set direction
Break ice
Propose idea
Initiate action
Slide 53
Slide 53 text
In this talk, we muddled through these
sociotechnical topics
Complexity
appreciation
complex vs. complicated
embedded sociotechnical
model
technical & social
practices
reversibility of Conway's
Law
Sociotechnical
patterns
decouple & connect
collaborative modeling
logical coupling
undiscussables
reflective conversations
purpose, paradoxes &
power (3Ps)
Sociotechnical
change practice
probe, sense, respond
safe-
to-
fail social
experiments
change smuggling
Trojan Mice
mediocre vs. real
collaboration
Slide 54
Slide 54 text
Distributed, domain-
driven, and event-
driven software
and human systems
A globally choreographed
dance where small dancers
orchestrate solo steps in
their local workflows, and
in concert with each other.
Inspiration: Udi Dahan
We know when to move and
when to hold our poses, in
service to the WHOLE
system.