Team Topologies
Team Topologies is a framework for designing and evolving team structures to enhance software delivery and organisational effectiveness. Developed by Matthew Skelton and Manuel Pais in Team Topologies: Organising Business and Technology Teams for Fast Flow, it provides a model for structuring teams to improve collaboration, reduce cognitive load, and enable faster software delivery.
Key Concepts of Team Topologies
1. Four Fundamental Team Types
The framework defines four types of teams, each with a distinct purpose:
- Stream-aligned teams – Aligned to a business domain or value stream, delivering end-to-end value (e.g., a payments team in an e-commerce company).
- Enabling teams – Help other teams acquire new skills, tools, and capabilities (e.g., an SRE team teaching reliability practices).
- Complicated subsystem teams – Handle specialised, complex domains requiring deep expertise (e.g., teams managing AI algorithms or cryptography).
- Platform teams – Provide reusable services, tools, and platforms to support stream-aligned teams (e.g., internal developer platforms).
2. Three Core Interaction Modes
How teams interact is crucial to minimising friction and maximising efficiency:
- Collaboration – Teams work together for a defined period to discover solutions.
- Facilitating – Enabling teams guide and mentor other teams without direct involvement.
- X-as-a-Service – One team provides services or capabilities that other teams consume independently.
3. Cognitive Load Considerations
- Teams should be designed to manage a reasonable amount of cognitive load.
- Avoid overloading teams with too many responsibilities or complex systems.
- Stream-aligned teams should be empowered but not burdened with unrelated concerns (e.g., infrastructure, security, etc.).
4. Evolutionary Team Structures
- Teams should adapt as the organisation scales and requirements evolve.
- Early-stage companies may need more collaboration, whereas mature organisations benefit from well-defined service boundaries.
Benefits of Team Topologies
- Faster delivery by reducing dependencies and bottlenecks.
- Improved developer experience and autonomy.
- Better knowledge-sharing and upskilling through enabling teams.
- Scalable team structures that evolve with business needs.