👥 Team Topologies: Structuring Teams for Fast Flow
Matthew Skelton and Manuel Pais’s Team Topologies challenges the assumption that team structures are just org charts. The authors argue that we must see teams and technology as a single sociotechnical ecosystem where each person’s cognitive capacity is limited. Treating teams as interchangeable groups of individuals leads to overload and bottlenecks; instead we need to design our organisation to respect the way people think and collaborate.
A key concept is Conway’s law: software architecture mirrors the communication structures of the organisation. If we want a different architecture, we must change our team structures—a technique they call the inverse Conway manoeuvre. Recognising this has made me look harder at how we arrange teams when trying to evolve a system; you can’t expect a monolith to magically decompose if your teams are still organised around functions rather than products.
To reduce ambiguity, the book recommends limiting teams to four fundamental types: stream‑aligned, enabling, complicated‑subsystem and platform. Stream‑aligned teams own a flow of work aligned to a business domain and are closest to the customer, while enabling teams help others adopt new tools and practices. Complicated‑subsystem teams encapsulate specialised knowledge that would overload a stream‑aligned team, and platform teams provide internal services to help other teams deliver autonomously. Having just these four types focuses the organisation on known interaction patterns and reduces cognitive overhead.
The authors also advise choosing team boundaries deliberately. Boundaries should match the cognitive load of the team and align with fracture planes in the software. Factors like regulatory requirements, team location and change cadence can dictate where to split a system. By aligning teams with these fracture planes, we enable them to evolve their parts of the system independently and at their own pace.
Finally, Team Topologies introduces three modes of team interaction: collaboration, X‑as‑a‑service, and facilitating. Collaboration is used for innovation and discovery when two teams work closely for a short time, X‑as‑a‑service defines a clear provider/consumer relationship, and facilitating focuses on helping teams remove obstacles. Avoiding a situation where every team must talk to every other team reduces communication noise and promotes flow. Overall, the book encourages us to design team structures proactively rather than reactively, creating an organisation that supports fast, sustainable delivery.