The Ownership Trap
Ownership is one of those ideas engineering orgs rarely question. Every system needs an owner, right? I have long had issues with ownership, at least in its strict form. Now that agents have made changing unfamiliar code cheap, the bottleneck isn’t who can make a change. It’s who’s allowed to.
- Ownership blocks: Team B needs a small change in Team A’s system, so it goes on Team A’s backlog and waits. Nobody did anything wrong. The system worked as designed, and that’s the problem.
- Ownership is often theater: Map your teams to your code domains and see what happens. Large parts of the platform have no real owner, and other parts are piled on one team that owns them only on paper. Be honest about how much of your code is unowned.
- Ownership creates anxiety: The moment someone hears “you now own this system,” they take on a heavy cognitive load and a sense of permanent burden. People get defensive, gatekeep, or avoid touching anything new.
- Ownership becomes blame: Too often it’s how leadership finds someone to yell at, rather than how teams care for systems.
We tell engineers “everyone is accountable” and “act like an owner,” then build structures where only the designated owner may act. People learn that problems outside their boundary aren’t theirs. The spirit of ownership is still worth keeping: someone needs to get paged, and deep expertise is valuable. Let’s lean into stewardship.
- Prefer guardrails over gatekeepers: A CODEOWNERS file that pulls a domain expert into reviewing an outsider’s PR is a safety net, not a gate. It makes it safer to work outside your area.
- Stewards help changes land: A steward team holds the context, sets the standards and reviews quickly. Their job is to help other people’s changes succeed, not to decide whether they’re allowed.
- Make the domain easy to enter: Good docs, clear tests and agent-ready context let anyone, and their agents, work safely in unfamiliar code. Stewardship is measured by how easy you make it for others to contribute.
- Separate the pager from the permission: Someone should get paged when it breaks. That doesn’t mean they’re the only ones who can change it.
- Accountability travels with the change: Whoever makes a change sees it through, including fixing what it breaks. Responsibility follows the work, not the territory.
We want engineers to cross boundaries: open PRs in unfamiliar repos, take on work in other domains, lean on agents to get up to speed. Strict ownership pushes the other way; stewardship gives them room to explore. When codebases are stewarded instead of guarded, nobody needs permission to build.