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

Making impact with your craft with sociotechnical design

xinyao
May 19, 2024

Making impact with your craft with sociotechnical design

[Xin's Talk at Code/Crafts 2024, Vienna]

If you have worked in the software industry for a while, you’ll have a hunch that technical skills are often not what stands between us and our success. Around software systems, there are always complex human systems, whose runtime dynamics seems full of fixes that don’t work. As software professionals, can we just tell jokes about SAFe, about being able to copy the Spotify Model, but not paste it? Or should we give the usual shrug – “it’s the system’s fault”?

Xin has been a design and architecture practitioner for more than a decade. Drawing on her own developmental journey, Xin makes a case for the rising relevance of sociotechnical design in a post-modern world, where aging companies struggle with aging software, while adding new software and complexity to their IT portfolio. With good attractor effect, practices like Domain-Driven Design(DDD), systems thinking and sociotechnical design are evolving into a multi-dimensional, sociotechnical design toolbox.

From a systems standpoint, we are part of the same mess. If we can become better at seeing and naming the elephants in the room, not as random events, but as systemic patterns described through a consistent systems language, then the current messy reality is no longer our enemy but our ally. It can become a generative force for us to identify leverage and sustain influence, making better impact with our craft.

Join Xin 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 build the system in a reality of vast sociotechnical complexity and constant change.

xinyao

May 19, 2024
Tweet

More Decks by xinyao

Other Decks in Design

Transcript

  1. DDD & Architecture Consultancy DDD Output + + Sociotechnical design

    + Organizational learning capacity + Who is Xin? Undercover change agent through DDD and architecture Xin Yao @settling_mud [email protected] @[email protected] /in/xinxin/ delay + delay Independent consultant
  2. Software is logical, and "compiles" Right or wrong answer a

    mathematically provable range of optimized solutions or at least Deterministic solution
  3. 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)
  4. 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
  5. Single Responsibility Principle Open/Closed Principle Liskov Substitution Principle Interface Segregation

    Principle Dependency Inversion Principle Image Credit: Robert Ecker We applied SOLID principles
  6. 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
  7. Design cannot happen in a closed system My existential conundrum

    Long way from neat and tidy to useful software <> "giant clock"
  8. Impactful software systems Req., code, test, deploy, run Scientific modeling

    Technical Complexity First cross over the bridge Software-​ Centric Craft
  9. How do I increase my odds of understanding, and impacting

    the "larger" decisions around software? Architect Developer Career crossroad - context & systems awareness Software swims in a system of systems
  10. Social Subsystem Concerned with social relations (teams, knowledge networks), reward

    systems, authority structures, behavioral patterns, culture. Whole Work (System of Systems) Technical Subsystem Concerned with physical systems (hardware, software, technology) as well as mechanisms (e.g. tasks and processes) to transform inputs to outputs. Joint Optimization External Subsystem Concerned with the outside environment (users, customers, partners, stakeholders, society) with which an organization interacts and seeks value exchange with through its product and services. Sociotechnical System Context & Systems awareness Illustration credit: Militello et. al.
  11. One biggest challenge in software development is communication issues between

    IT people and business people, and between IT people and managers. Software craft is a relational activity individual craft Collective craft -- Vladik Knononov
  12. Credit: Henrik Kniberg (Adapted) Developer User Info hand-​ offs/ Decision

    relays Time (Delay in feedback) Many hops before knowledge or decision reaches its final destination
  13. Product language Design language First team's code language Product manager

    UX / Architect Engineering "Telephone game" Confused language enters software and hurts its maintainability Another team's code language Engineering Management language Management
  14. Ubiquitous Attention to Language (UL) [Sociotechnical pattern from DDD] Test

    Software for a complex domain requires all involved to have a deep, shared understanding of the domain.
  15. Language Languaging Knowledge transfer Knowledge processing Change the itinerary of

    knowledge from language to languaging [Sociotechnical pattern from complexity theory] Credit: Humberto Maturana
  16. Who work and create value together? Who else do we

    need to align understanding with? DDD DDD is a sociotechnical craft 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
  17. DDD Process DDD is used as methods and/or process Methods

    Principles, Patterns, Practices Facilitate change & communication (design discipline) Domain-​ driven discovery is sometimes employed as a process model in change initiatives www.infoq.com Start Your Architecture Modernization with Domain-Driven Discovery Successful projects start with robust discovery. What if your project is modernizing your tangled old legacy system or migrating all your workloads to the cloud? This article presents a guided approach to starting your next architecture modernization pr…
  18. A DDD workshop series Strategic Design (models) Tactical design (models)

    Visual Collaborative Modeling Problem space Solution space
  19. Impactful software Req., code, test, deploy, run Scientific modeling Second

    cross over the bridge "The 1st sociotechnical chasm" Collaborative languaging & modeling Context & Systems awareness Software-​ Centric Craft Technical Complexity Social Complexity
  20. How do we survive thrive with complex organizations & calcified

    legacy systems Software industry matures Every business is a software business Aging companies with aging software Compounding sociotechnical complexity
  21. How do we "move a couch" within a complex organization?

    Credit: Gene Kim & John Cutler Gene Steve
  22. A true "moving the couch" story involving 26 teams, deeply

    nested API call chains & event choreography [Anno 2022]
  23. Social Subsystem Concerned with social relations (teams, knowledge networks), reward

    systems, authority structures, behavioral patterns, culture. Whole Work (System of Systems) Technical Subsystem Concerned with physical systems (hardware, software, technology) as well as mechanisms (e.g. tasks and processes) to transform inputs to outputs. Joint Optimization External Subsystem Concerned with the outside environment (users, customers, partners, stakeholders, society) with which an organization interacts and seeks value exchange with through its product and services. Sociotechnical System An area engineers don't want to be bothered with
  24. How is all this social buzz relevant for me as

    an engineer? Aren't all big companies in similar waters? I enjoy ranting about it at water coolers.
  25. Disengagement persists among employees world-​ wide www.gallup.com Indicator: Employee Engagement

    Employee engagement is the involvement and enthusiasm of employees in both their work and workplace. www.gallup.com Announcing the 2024 Gallup Exceptional Workplace Award Winners Gallup celebrates 60 winning organizations that maintained highly engaged workplace cultures while adapting to the challenges of 2023.
  26. Human beings are motivated not by survival, but also by

    the aspirations to reach our full potential. Surrounded by complexity, we have directed our motivation toward "making things less bad" rather than "creating great things" we care deeply about.
  27. Org chart A social system's runtime behavior Jesper There have

    been 10+ reorgs in my tenure here. But it's always the same people you need to know to pool knowledge together and get stuff done. That's my knowledge network. "Mainframe specialist in a big bank" (+roadmap, plans, backlogs)
  28. 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 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)
  29. 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
  30. 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"
  31. ... is a systemic and participatory co-​ design approach to

    jointly optimize the technical systems (including but not limited to software) and human systems (including but not limited to users & teams) to improve the thriving of both. Sociotechnical design & architecture
  32. ... is taking a languaging & modeling approach to visualize

    and share our “whole work” as a system of systems, to build software and build ourselves as purposeful and improvable sociotechnical systems. Sociotechnical design & architecture
  33. In-​ the-​ moment leadership How do you change the world?

    One room at a time. Which room? The one you're in. ~ Peter Block
  34. Autonomy Mastery Purpose Intrinsic motivation Systemic changes Credit: Daniel Pink,

    Jabe Bloom Agency Do I feel the freedom and joy to take actions that contribute to the well-​ being of the whole system Make systemic impact with our craft ... even when that action means giving up some local autonomy?
  35. Impactful software systems Req., code, test, deploy, run Scientific modeling

    Another cross over the bridge "The 2nd sociotechnical chasm" Collaborative languaging & modelilng Context & systems awareness Software-​ Centric Craft Software-​ Centric Craft Model work as purposeful systems Social Relational Craft Listening and reflective conversation skills Impactful human systems "The 1st sociotechnical chasm" Impactful whole work
  36. "Software development is a learning process, working code is a

    side effect". -Alberto Brandolini A learning and developmental journey
  37. 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