When devising team and org structures within technical organization, a fracture plane is a natural seam in the software system that allows the system to be split into two or more parts. Teams can then be aligned to these individual parts. In Team Topologies the authors identify several fracture planes1:
- Business Domain Bounded Context: The ideal boundary, a bounded context is a design that shares a common model with the business. This aligns technology with business and reduces mismatch in terminology and improves the flow of changes.
- Regulatory Compliance: Regulatory requirements may impose strict boundaries on a system. However, be cognizant that not all systems need to be subjected to the highest level of compliance. Breaking out less regulated systems allows them to change faster.
- Change Cadence: looking for business required update cadences and splitting out by frequency of update. Coupled systems only ship at the speed of the slowest part.
- Team Location: Splitting systems by co-located teams aligns with Conway’s Law
- Risk: picking system pieces and mapping them to business appetite for failure and change (risk). One system may be “able” to go down more frequently and therefore changes are more tolerable.
- Performance isolation: parts of a system may require different scaling and performance, this presents a natural sub system to break out so that it’s deployment can be managed independently
- User Personas: Focusing on a segment of user needs for a team (i.e. paying users) requires a focus on:reducing dependencies but focuses sharply on customer needs and experience.
- Technology: a common chosen pattern for breaking up teams (e.g. front end vs. backend tech) however this often slows down the flow of work. This is a good choice when there is an isolated system using older and less automatable technology.
1. Skelton, M., Pais, M. & Malan, R. Team Topologies: Organizing Business and Technology Teams for Fast Flow. (IT Revolution Press, Portland, OR, 2019).