Team Topology
Build teams that deliver an external product or an internal service to other teams
Team Types
The Team Topologies Book identifies four fundamental team types in software development:
- Stream-aligned team: Aligned to a flow of work from (usually) a segment of the business domain.
- Platform team: A grouping of other team types that provide a compelling internal product to accelerate delivery by Stream-aligned teams.
- Enabling team: Helps a Stream-aligned team to overcome obstacles. Also detects missing capabilities.
- Complicated Subsystem team: Where significant mathematics/calculation/technical expertise is needed.
Team Interactions
The Team Topologies Book defines three interaction modes between teams:
- X-as-a-Service: One team provides and one team consumes something as a service.
- Facilitation: One team helps and mentors another team.
- Collaboration: Working together for a defined period of time to discover new things.
Fracture Planes
Based on the four team types described above it is not really clear how to define team boundaries in practice. The term "stream-aligned team" in particular raises the question what the streams are that these teams are supposed to align with. There are various fracture planes for shaping team boundaries:
- ✂️ Technology
- Web, Mobile, Desktop
- Frontend, Backend
- ✂️ Bounded Contexts
- Different steps of the user journey
- Discovery, delivery, payment, customer support
- ✂️ Regulatory Compliance
- GDPR Special Category Data (GDPR Art. 9)
- Payment Services Directive (PSD2)
- ✂️ Change Cadence
- Things that need to be developed at different pace
- ✂️ Team Location
- Colocated vs Remote-first
- ✂️ Risk of Failure
- Service level agreements vs best effort
- ✂️ Performance
- Real-time service (video streaming) vs batch job (sending marketing mails)
- ✂️ User Personas
- Free, Paid, Enterprise
- ✂️ Other
- Business-specific fracture planes