🌿 sprout

Team Boundaries as System Architecture

“Every part of the software system needs to be owned by exactly one team.”

This simple rule from Team Topologies encodes a profound principle about boundaries in complex systems: clear ownership eliminates the coordination overhead that destroys flow.

Michael Nygard’s insight applies to both code and teams:

“a concept may appear to be atomic just because we have a single word to cover it. Look hard enough and you will find seams where you can fracture that concept.”

Domain-Driven Design gives us bounded contexts for software. Team Topologies adds the human dimension: how do we organize people to maintain these boundaries effectively over time?

The mental model shift: team boundaries are architectural decisions. When you split or merge teams, you’re refactoring your organization’s ability to evolve the system.

“The architecture of the system and the architecture of the organization are at odds, the architecture of the organization wins.”

This means every organizational change is also a technical decision. Every technical decision implies an organizational structure.

The goal isn’t perfect boundaries—those don’t exist. The goal is boundaries that enable autonomous value delivery while minimizing coordination costs. My theory is that these shifts are most needed at times to enforce a common definition of value.

Most organizations optimize for resource efficiency. Team Topologies optimizes for flow efficiency. The difference shows up in your system architecture whether you planned it or not.

This is an entry in my digital garden. See what else is growing here.