Adaptive Socio-Technical Systems with Architecture for Flow • Susanne Kaiser • GOTO 2024

Learn how to build adaptive socio-technical systems that optimize flow using Domain-Driven Design, Team Topologies, and value chain mapping to balance efficiency and effectiveness.

Key takeaways
  • Building adaptive socio-technical systems requires optimizing for fast flow of change and constant feedback while balancing “building the right thing” (effectiveness) with “building the thing right” (efficiency)

  • Use value chain mapping to identify important change streams and analyze how changes flow through the system to reveal potential blockers and inefficiencies

  • Domain-Driven Design helps partition complex systems into bounded contexts that serve as clear ownership boundaries and enable modular architecture

  • Team cognitive load must be optimized by limiting the size and complexity of systems teams are responsible for - exceeded cognitive load creates delivery bottlenecks

  • Platform teams should provide self-service capabilities that make cross-functional stream-aligned teams self-sufficient rather than dependent on others

  • Team Topologies provides clear team types (stream-aligned, platform, enabling) and interaction modes (collaboration, facilitating, x-as-a-service) to optimize team structures

  • Generic subdomains can leverage existing solutions (off-the-shelf, open source) while core domains that provide competitive advantage should be custom built

  • Teams should be aligned to customer-facing streams of changes rather than technical silos to reduce handovers and wait times

  • Conway’s Law means system design mirrors communication structure - team boundaries should align with software architecture boundaries

  • Evolution stages (Genesis → Commodity) require different mindsets (Explorer → Town Planner) and practices as components mature