Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[KanDDDinsky 24] Navigating sociotechnical comp...

xinyao
October 30, 2024
58

[KanDDDinsky 24] Navigating sociotechnical complexity with DDD & friends

Our work with software is a system of systems, comprising technical systems (software, hardware...) and social systems (teams, knowledge networks...). For decades, our primary focus has been on the outcome and output of technical systems. Social capacity (Agile, Kanban, process models) is often perceived as a support for producing software, and often practiced as if human organizations were a software factory, manageable by divide-and-conquer, cascading goals and aggregating results.

Software professionals and Agile practitioners often feel powerless when things get too complex and too political. We are frustrated that well-meaning attempts at fixing human systems with processes, governance structure, architecture and scaled agile frameworks don't seem to work.

This talk aims at cultivating a deeper understanding of sociotechnical complexity among software engineers, architects, Agile practitioners, product professionals and leaders at all levels in large organizations. You will be introduced to a multi-dimensional sociotechnical design toolbox with practices from Domain-Driven Design (DDD), sociotechnical architecture, Complexity Theory, Systems Thinking and Constraints Framework.

You will hear concrete examples from the speaker's personal journey from being a developer, then a software architect then sociotechnical architect and a change practitioner. You will also be introduced to a number of thinking, modeling and conversational tools that you can experiment with in your own context.

Join me to reflect together on, how DDD and adjacent practices can be leveraged as powerful enabling constraints to help us see the system, share the system, and change the system in a reality of vast sociotechnical complexity and constant change.

xinyao

October 30, 2024
Tweet

Transcript

  1. 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 +
  2. 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
  3. 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
  4. Many shades of complexity in software work How do we

    talk about things being complex in different ways?
  5. 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
  6. 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
  7. 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]
  8. 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
  9. 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
  10. 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.
  11. Professional planners provide a grand design of work Material, capital

    & people with skills as production factors Design of work Production factor
  12. The Inverse Conway Maneuver Target architecture boundaries Team boundaries The

    new black in organization design Sociotechnical mirroring
  13. (Example: governance process in a corporate change initiative) Our default

    social intervention mode is analytical divide-​ and-​ conquer
  14. 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
  15. Most of us acknowledge that social systems are more complex,

    uncertain and unpredictable ... Complex is not the same as Complicated
  16. 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
  17. 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
  18. 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
  19. 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)
  20. 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
  21. We cannot find optimal software boundaries with DDD Confession of

    a Change Smuggler in a complex domain with ever-​ changing business logic just
  22. Premature convergence Bounded Context Bounded Context Bounded Context Bounded Context

    Bounded Context Bounded Context Bounded Context Bounded Context Bounded Context Bounded Context Bounded Context
  23. 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?
  24. 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?
  25. 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?
  26. 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
  27. 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
  28. 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
  29. 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
  30. Sometimes the social+technical is just too big of an "official"

    scope of work DDD "process consultant" "process architect"
  31. 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
  32. * 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
  33. 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]
  34. 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
  35. 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
  36. 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
  37. 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.