The Challenges and Traps of Architecting Sociotechnical Systems

Nick Tune
Nick Tune
Jun 23, 2018 · 16 min read

Decoupling Streams of Work

Isolate high-value and low value capabilities and you can easily invest all your money where ROI is greatest and kill features that cost more to maintain than they are worth

Arbitrary Boundaries

Even if code lives in a separate codebase, high-coupling and co-change will exist if boundaries are not cohesive

Slicing Up The User Interface

Dedicated Frontend Teams vs Vertical Slices

Vertical slices lead to greater end-to-end autonomy, but they introduce bottlenecks at the UI layer and facilitate disjoined user experiences.

Micro-frontends

BFFs (Backends for Frontends)

BFFs allow teams to focus on providing an exceptional user experience for a specific device, but they incur many handovers.

Dependencies Between ‘Autonomous’ Teams

Coupling and Cohesion All The Way Up

Alignment vs Autonomy

We think organisation structures reflects how teams collaborate

Organisations are Networks

Organisation structure does not accurately communicate coupling and dependencies in the system

Autonomy vs Economies of Scale

Shared Services

The octopus context: a capability that reaches out and depends on many others from across the organisation

Battle For Ownership

Nobody Wants to Own Legacy Balls of Mud

Everybody Wants to Control Their Destiny

The Selfish Silo

The more disconnected teams are from user feedback the less likely those teams are to optimise for user needs

Counter-productive Incentives

Living With Cohesion and Connascence In Sociotechnical Systems

Nick Tune’s Tech Strategy Blog

Domain-Driven Design, Organisation Design, Continuous Discovery and Delivery, Technical Strategy…

Nick Tune

Written by

Nick Tune

Technical Leader | Sociotechnical Architect

Nick Tune’s Tech Strategy Blog

Domain-Driven Design, Organisation Design, Continuous Discovery and Delivery, Technical Strategy…