In Team Topologies the authors describe three well defined modes for team interaction1:
Collaboration
Working closely together with another team.
- Should be used when exploring new technologies or techniques
- A team should only be collaborating with one team at a time
- fewer hand offs
On the downside, this requires more cognitive load and shared context, can slow down the collective due to size.
Collaboration can take two forms: 1. The teams are largely seperate but collaborate on a narrow focus (small venn-diagram overlap) while maintaining their primary responsibilities 2. The teams share the exact same set of responsibilities (full venn-diagram overlap). In this scenario the teams must have joint-responsibility otherwise loss of trust can occur when things go wrong.
Common pairings:
- stream-aligned team with complicated-subsystem team
- stream-aligned team with platform team
- complicated-subsystem team with platform team
X-as-a-Service
Consuming or providing something with minimal collaboration. typical this occurs during later phases of development where a boundary can be easily identified and formalized.
- Clear ownership and responsibility with the boundary, and therefore reduced cognitive load
- Innovation across the boundary will be slower, but this is to be expected
- Needs strong product management and DevEx skills within the team
- X-as-a-service should be a common pattern for teams both as consumers and providers
On the downside the flow can be reduced when the boundary is poorly defined or chosen.
Common Pairings:
- complicated-subsystem team/stream-aligned team consuming a platform team’s paas
- complicated-subsystem team/stream-aligned team consuming a library from a complicated-subsystem team Facilitating
Helping (or being helped by) another team to clear impediments. Facilitating is the main operating mode of an enabling team. The job of the team facilitating is to make the other team more effective, learn more quickly, understand new tech, and discover and remove common cross-team problems. Facilitation requires experienced staff who will refrain from building the solution or taking over. This mode is incredibly important for maintaining cross team standards and resolving problems endemic across teams.
Common pairings:
- a enabling team helping a stream-aligned team, complicated-subsystem team, or platform team
- a platform team helping a stream-aligned team, complicated-subsystem team, or platform team
1. Skelton, M., Pais, M. & Malan, R. Team Topologies: Organizing Business and Technology Teams for Fast Flow. (IT Revolution Press, Portland, OR, 2019).