Why Your Codebase Will Grow Faster Than Your Understanding
Writing code built understanding as a byproduct, which is why "the team knows the system" used to be true without anyone planning it. That coupling broke and only one of the two rates changed.
Two rates that used to be coupled are decoupling. Code production scaled with the number of engineers and their time; comprehension scaled the same way, because producing code was how understanding got built. One of those rates just changed and the other didn't.
The gap between them is a specific operational risk, and it doesn't announce itself.
Why they were coupled
Writing code produced understanding as a byproduct. An engineer implementing a module read the surrounding code, understood the interfaces, and made decisions about how it fit. The understanding wasn't a separate activity — it was inseparable from the work.
That coupling is what made "the team understands the system" true without anyone planning it.
What decoupling looks like
Production accelerates. Comprehension doesn't, because reviewing a change is a weaker form of understanding than authoring it — sufficient to judge whether the change is reasonable, insufficient to build a model of the system it sits in.
Symptoms, in rough order of appearance:
- Questions about how something works get answered with "let me check" rather than an explanation.
- Debugging takes longer, because it starts with reading rather than with a hypothesis.
- More incidents where the cause is an interaction nobody anticipated.
- Onboarding gets slower — the new person is the first to notice nobody can explain things, but the condition affects everyone.
- Estimates get worse, because they depend on knowing what a change will touch.
⚠️ None of these produce an alert. The gap is invisible until a specific moment when it isn't — and that moment is usually an incident.
Why it matters more than it sounds
Debugging requires a model. Without one, you're pattern-matching symptoms to fixes, which is what agents do and what fails when the pattern doesn't apply.
Review quality depends on it. Catching a plausible-but-wrong change requires knowing what's around it. Reviewers without a model approve things that look reasonable.
Architecture decisions depend on it. Deciding where something belongs requires knowing what's already there.
Incident response depends on it. The night something breaks in a novel way is when you find out whether anyone understands the system.
✅ Closing the gap deliberately
Since it no longer happens as a byproduct, it has to be resourced:
Name an owner per critical system, whose job includes actually understanding it — not just approving changes to it.
Read one system properly, end to end, per person per quarter. Tedious, and it produces something nothing else does.
Onboard through debugging rather than reading.
Trace requests by hand occasionally, through every layer.
Write down what you learn, especially the why. This is the only way understanding transfers.
Use agents to accelerate exploration, not to replace it. "Walk me through this call path, showing each function" builds a model. "Summarize this service" substitutes for one. Same tool, opposite outcome, and the difference is entirely in what you ask for.
🔍 Measuring the gap
Rough and useful: for each critical system, how many people could explain how it works, without reading it first?
Track that number. If it's falling while the codebase grows, the gap is widening. Zero for anything load-bearing is an operational risk that should be treated like any other — with a plan and an owner.
A related signal: how often does debugging start with "let me read this" rather than "I think it's probably here"? The shift from hypothesis to exploration marks the gap arriving.
The takeaway
Production and comprehension were coupled because writing code built understanding. That coupling broke, comprehension didn't get faster, and the gap is invisible until an incident. Resource it deliberately — named owners, deep reads, onboarding through debugging, tracing by hand, writing down the why — and track how many people can explain each critical system. A zero there is a risk with a plan required, not a documentation gap.