This post is part of a series. Other posts in this series are:
The second part of Team Topologies explores concrete team structures that enable the conscious design of effective teams. Before presenting these structures, the authors highlight common anti-patterns in non-intentional team design:
- Ad hoc team design – teams that grow too large and need breaking up due to excessive communication overhead
- Shuffling team members – creating volatility and leaving only a few engineers to maintain abandoned systems
At the core of effective team design is the concept of “low friction” software delivery – organisations structured to enable a smooth flow of change.
A common misconception is viewing software delivery as a one-way process: from specification to development, testing, and release. This model fails in today’s environment of rapid change and complex systems, which increasingly rely on feedback loops to development teams. In fact, prioritising these feedback loops improves both delivery times and responsiveness.
The book emphasises that team success depends primarily on the environment, team interactions, and organisational structure – often more than the skills and experience of individual team members.
Around 2009, DevOps emerged in response to increasing pressure on operations teams to deploy more frequently. Similarly, Google’s Site Reliability Engineering (SRE) approach uses Service Level Objectives (SLOs) and error budgets to balance delivery speed with reliability. The effectiveness of such interaction patterns is heavily influenced by organisation size and engineering maturity.
When designing team structures, organisations must consider both the realistic capabilities of teams and the resulting dependencies between them. Diane Strode and Sid Huff categorise these dependencies into three types:
- Knowledge dependencies
- Task dependencies
- Resource dependencies.
The Four Fundamental Team Topologies
1. Stream-Aligned Team
Definition: Teams aligned to a single, important stream of work (e.g. a service or feature) that can deliver value quickly and safely without handoffs to other teams.
Key Responsibilities:
- Delivering end-to-end functionality within their domain
- Maintaining close customer connections to rapidly incorporate feedback
- Operating as long-term, sustainable units with well-defined workflows
Required Skills:
- Design and architecture
- Development and coding
- Metrics and monitoring
- Product management and ownership
- Testing and quality assurance
- User experience
Outcomes:
- Steady feature delivery flow
- Quick course correction capabilities
- Time to address technical debt
- Progress toward autonomy, mastery, and purpose
2. Enabling Team
Definition: Specialist teams that help bridge capability gaps in stream-aligned teams, allowing them to deliver more effectively.
Key Responsibilities:
- Researching options so stream-aligned teams don’t have to
- Facilitating knowledge sharing across the organiation
- Staying current with advancements and best practices
Required Skills:
- Strong collaboration abilities
- Deep expertise in specialied domains
- Teaching and mentoring capabilities
Outcomes:
- Understand and address stream-aligned team needs
- Curate and share knowledge effectively
- Form short-lived collaborations until stream-aligned teams acquire necessary skills
3. Complicated Subsystem Team
Definition: Teams that provide expertise for technically complex components that would create excessive cognitive load for stream-aligned teams.
Key Responsibilities:
- Developing and maintaining complex subsystems
- Creating clean interfaces that abstract away complexity
- Supporting stream-aligned teams that use the subsystem
Required Skills:
- Deep technical specialisation
- Interface design expertise
- Understanding of stream-aligned team requirements
Outcomes:
- Progressive collaboration from exploration to feature delivery
- High subsystem quality maintenance
- Accurate prioritisation of work supporting stream-aligned teams
4. Platform Team
Definition: Teams that reduce cognitive load by handling implementation details that would otherwise burden stream-aligned teams.
Key Responsibilities:
- Building and maintaining internal platforms
- Providing high-quality services rather than numerous lower-quality offerings
- Enabling autonomy for stream-aligned teams
Required Skills:
- Strong collaboration abilities
- Rapid prototyping capabilities
- Platform and infrastructure expertise
Outcomes:
- Make it easy for development teams to “do the right thing”
- Deliver reliable services
- Lead by example in engineering practices
Large organisations may need multiple platform teams arranged with their own “inner topologies”. The services of these platform teams should be treated with the same operational discipline as any production system, including on-call rotations and incident management.
Rethinking Team Structures and Boundaries
The Team Topologies approach discourages single-expertise teams (except for complicated subsystem teams). Teams like QA and UX should be integrated into stream-aligned teams rather than segregated.
As the book summarises: “Most teams in a flow-optimised organisation should be long-lived, multi-disciplined, stream-aligned teams. These teams take ownership of discrete slices of functionality or certain user outcomes, building strong and lasting relationships with business representatives and other delivery teams.”
Organisations transitioning to Team Topologies may need to transform existing teams:
- Infrastructure teams → Platform teams (though this transition may be challenging due to the product-oriented nature of platform teams, which infrastructure teams may not have experience with)
- Component teams → Platform, enabling, or complicated subsystem teams
- Tooling teams → Short-lived enabling teams or part of platform teams
- Architecture teams → Part-time enabling teams (should be short-lived so that stream-aligned teams make most decisions and these teams should not impose designs or technology choices on other teams)
The overarching goal is to structure the organisation so that stream-aligned teams can achieve a high flow rate with appropriate autonomy and ownership.
The book proposes that a key factor in disengagement, slow rate of delivery, and lack of ownership in large organisations is due to the responsibility boundaries assigned to teams within them. This often results in monolithic systems with unclear boundaries.
Types of Monoliths and Breaking Them Down
The book identifies several types of monoliths that can form in organisations:
- Application Monoliths – Single applications with too many responsibilities
- Joined-at-the-Database Monoliths – Multiple applications coupled to a single database schema, making it difficult to iterate on them separately
- Monolithic Releases – Groups of components that must be deployed or run together to function correctly
- Monolithic Models – Attempts to force single domains across differing contexts
- Monolithic Thinking – “One size fits all” approaches causing unnecessary implementation consistency across different teams
- Monolithic Workplaces – Single office layouts for all teams regardless of needs
Fracture Planes for Breaking Down Monoliths
When splitting monoliths, organisations must be cautious of:
- Reduced consistency
- Unintended duplication
- UX inconsistency
- Additional complexity
To address these concerns, the book introduces fracture planes – “natural seams in the software system that allow it to be split easily into two or more parts.”
Common fracture planes include:
- Business Domain Bounded Context – Split systems by business domains, applying Domain-Driven Design principles to allow both technical and non-technical participants to speak in unified terms when discussing the business domain
- Regulatory Compliance – Separate systems based on compliance requirements to simplify auditing in large organisations
- Change Cadence – Accept that different parts of a system can change at different rates and separate accordingly
- Team Location – Divide systems based on team geography to enable effective collaboration, or implement a complete remote working approach with agreed availability
- Risk Profile – Separate high-risk and low-risk components to manage them appropriately
- Performance Isolation – Split high-traffic services to enable independent scaling, especially for services with high traffic peaks
- Technology Stack – Separate components by technology, especially for older systems
- User Personas – Divide systems based on distinct user workflows and needs
A combination of fracture planes is typically required. The basic test for evaluating a fracture plane is: “Does the resulting architecture support more autonomous teams (less dependent teams) with reduced cognitive load (less disparate responsibilities)?”
By thoughtfully breaking down systems using these principles, organisations can create more effective teams that evolve safely and quickly.
Reflections: A New Perspective
The precise and clear four fundamental team topologies have given me a new perspective on thinking about the roles and responsibilities of my own team and the teams we work with. Specifically, the complicated subsystem and enabling teams were concepts I hadn’t fully considered before. It’s quite common for a typical “feature” team to blur the lines between these two and the stream-aligned team, but the clear separation proposed in Part 2 of Team Topologies indicates this doesn’t need to be the case.
Although I don’t necessarily think it’s effective or practical to rigidly enforce these boundaries overnight, I do believe there’s immense value in adopting the mindset encouraged throughout this section. Ultimately, the role of complicated subsystem, enabling, and platform teams is to provide the necessary tools and capabilities that allow stream-aligned teams to deliver value quickly and safely.
The book’s approach to monoliths was also insightful. While application monoliths are immediately where my thoughts would go with the mention of the word, it was useful to gain clarity on how releases and models (among many others mentioned) can be their own types of monoliths to be wary of. The proposed fracture planes offer actionable steps toward breaking away from such monoliths.


