smallbox

← All articles

What good development optimises for

We know something has to change — do we need an audit first, or just more hands?

Is your problem uncertainty, or capacity?

A product that has become slow and risky to change presents the same way every time. A change that should take an hour takes three weeks. Nobody wants to touch the part that matters most. Every estimate comes with a shrug. From the founder's chair the symptom is unmistakable, and so is the instinct: do something — usually either understand the system better, or push more work through it. Commission an audit, or hire a developer.

Both can be right. But they answer different problems, and the symptom does not tell you which one you have. Reaching for the move you already know is how a capacity fix gets spent on a problem more hands make worse, and how an understood system gets handed a report it did not need. So the first useful step is not to act. It is to name the problem underneath the symptom.

There are three of them.

The two you can feel

The first two are the ones a founder usually senses directly.

Uncertainty is not knowing what the system does. You cannot say with confidence where a given rule lives, or what a given change will break, because the answer was never written down — it lives in code written under pressure, in the head of someone who has moved on, in a commit message from two years ago. The honest answer to "what happens if we change this?" is "we'd have to look." That is not a knowledge gap in your team; it is a property of a system that grew faster than its own explanation.

Capacity is knowing, but not having enough senior time. The shape is clear — someone can answer where things live and what a change touches — there is simply more valuable work than senior hours to do it. This is the ordinary, healthy version of the problem: a product working well enough to outrun the time available for it.

These two feel like the whole choice: see the system, or work it harder. They are not — because of the third.

The one hiding behind "we need more hands"

The third problem is coherencenothing has a single place where it belongs. A rule starts in one part, gets repeated in another, drifts into a third. No decision is wrong on its own; together they leave a system where every change is a small negotiation about where things go. Coherence is dangerous because it disguises itself as capacity. The team cannot keep up, so it reads as "we need more hands" — and that is the one situation where more hands deepen the problem instead of relieving it, because more people on an unclear system multiply whatever the cost of change already is. The tell that it is coherence and not capacity: the same kind of bug keeps coming back no matter how fast the last one was fixed, and two capable people give two different answers about where something ought to live.

This is the costly misread: the capacity fix and the coherence problem point in opposite directions. Add throughput to a system with no clear homes and you get more code in more places nobody chose — motion that looks like progress while the cost of the next change climbs underneath it.

How to tell them apart

You do not need an audit to make the first cut — just one honest conversation about a real, recent change, the one that took too long or got postponed. Ask what actually happened.

  • If the answer is "we weren't sure what it would affect, so we were careful" — and nobody could have told you in advance — that is uncertainty. The thing you are short of is sight.
  • If the answer is "we knew exactly what to do, there just wasn't time" — and the people who knew were the same two people who are always the bottleneck — that is capacity. The thing you are short of is hours.
  • If the answer involves "it depends who you ask", or a fix that broke something unrelated, or a rule that turned out to live in three places — that is coherence. The thing you are short of is a place for things to belong.

Most real systems carry some of all three. The question is not which one exists but which is the current bottleneck — the one that, addressed first, makes the others tractable. Uncertainty usually goes first, because you cannot safely add hands or reshape structure in a system you cannot see.

The first move follows from the answer

Each problem has a different cheapest first step, and naming the problem is what lets you choose it instead of defaulting.

  • Uncertainty starts read-only, with a System Report — a written map of what is actually there and what is safe to change, before anything moves. The accepted cost is spending time looking before building; what it buys back is not paying a developer to rediscover the system by trial, one broken change at a time.
  • Capacity starts with one bounded piece of work — real throughput, on a system that can absorb it — and becomes an ongoing owner only if the fit is clear. The accepted cost is a slower start than just hiring; what it buys is evidence of fit before anything ongoing is committed.
  • Coherence starts with an owner before it starts with a crowd — someone to give the important things one home each, so the next hands land somewhere instead of adding to the drift. The accepted cost is delaying headcount; what it buys is hands that are productive on day one rather than lost for a quarter.

The honest limit: sometimes the answer really is just more hands, and none of this applies. If the system is well understood and well shaped and you simply need more done, hire the throughput — you do not need a report or an owner, you need a developer. The diagnosis matters precisely because it can also clear you to do the obvious thing.

And the diagnosis can be wrong. That is the deeper reason every first move above is small and reversible — a read-only map, one bounded piece — so a misread costs a few weeks, not a year. Choosing the entry path by evidence instead of by instinct is the whole point, and it is the first of the values the work is built on: act on what you can check, not on what feels certain from the inside. Ownership is what comes after the diagnosis — not before it.

These articles describe the standard. Ongoing system ownership is how it is applied to your system, month over month.

← All articles