Good intentions, tangled systems
I've been reading Team Topologies and The Unicorn Project. Both explore how interactions between teams can create complexity and friction - even when every local decision is well-intentioned.
In engineering, we all learn not to couple systems at the database level. When it happens, changes require coordination, scheduling, and backwards compatibility. Everything slows down. But we often build organizations that same way.
Want to ship a feature? Wait for:
- data changes owned by one team
- platform support from another
- frontend work from a third
- sometimes additional shared components, security reviews, or compliance sign-offs.
Each step introduces prioritization and coordination in teams with different incentives and timelines.
All of this typically emerges for good reasons:
- to build things once and reuse them
- to concentrate deep expertise
Over time, though, managing these dependencies leads to more process. And seeking predictability leads to planning cycles. And slowly, without deliberate intent, the system becomes tangled.
Team Topologies and The Unicorn Project both remind us: Progress doesn't come from optimizing each subsystem in isolation. It comes from simplifying the flow of value - reducing handoffs and designing teams around that flow.