← General

Ready is a finish line. Better is a direction.

General

There are two ways to look at a piece of work, and from the inside they feel identical. One is to look at it and see how it could be improved. The other is to look at it and see what it takes to get it ready. Both involve staring at the thing with a critical eye. Both produce a list. Both feel like diligence.

They are opposite acts, and confusing them is the most common reason competent people ship late, or ship whatever they happened to have when the time ran out.

The pass

The improving mode has a characteristic shape. You do a pass. You look for anomalies: a rough edge, a case that isn’t handled, a sentence that reads badly, a layout that’s a little off. You fix one or two. Then you do another pass, and it yields another one or two, because there is no version of any non-trivial thing that has zero anomalies. The pass always finds something. That is the property of a pass.

This isn’t a bad way to spend an hour. It’s a terrible way to organise a delivery, and the reason is simple: the pass has no finish line. It has no position either. Ask someone mid-pass how far along they are and the honest answer is “I’m looking.” Not step three of seven. Looking. The work ends when the person gets tired, or the deadline arrives, or someone asks for it, and what ships is whatever state the thing was in at that moment. Ready was never a state the work reached. It was a state the work got interrupted in.

Parkinson’s law describes the mechanism: work expands to fill the time available for it. The pass is how the expansion actually happens. Each iteration is defensible on its own, so nobody stops, so the time fills.

Delivery

The delivering mode starts from the other end. Before looking at the work at all, it answers three questions.

What does ready mean? Not a feeling, a list. Checkable outcomes a person who didn’t do the work could mark done or not done from the outside. I’ve written about this as the definition of done, and the whole argument there applies: an activity list (“polish the copy”) is a hope, an outcome list (“every number on the page has a source”) is a definition. If you can’t write the definition, you’re not ready to deliver, and no amount of passes will get you there, because the passes don’t know what they’re aiming at.

How many steps from here to there? Count them. Write them down in order. This is the part that looks bureaucratic and isn’t, for one reason: a counted path gives the work a position. Step four of seven tells you whether you’ll make it, what’s left, and, crucially, whether the thing you just noticed is on the path or off it. When you find an anomaly mid-delivery, the step list is the arbiter. Either fixing it is one of the steps to ready, in which case it was already on the list, or it isn’t, in which case it’s a note for later and you keep moving. Without the list, every anomaly is a fork and the work has no way to tell a step from a detour.

How much does this deserve? Time and effort, decided before you start rather than discovered by running out. Basecamp’s Shape Up calls this the appetite, and its framing is the useful one: fixed time, variable scope. The box is the constant. What flexes to fit it is what ships. When the box runs out, you cut scope to what’s ready or you ship what’s ready, and the one thing you don’t do is extend the box, because an extended box is just a pass with a calendar entry.

Three answers, then execution: step one, step two, up to N, cross the line, stop.

Why the order matters

The improving pass survives this scheme, relocated: it goes after the line, with its own box, and that placement is the whole point.

Improvement is unbounded by nature. There is always a better version. So of the two modes, improvement is the one that most needs a box around it, and putting it before the finish line means the box never closes, because the finish line keeps moving to wherever the last improvement left it. Put it after, and it becomes what it should be: a bounded, optional pass on something that already shipped. Fix two things, stop, move on.

This is the same logic as ordering work by what it makes cheaper next. The step that makes everything after it cheaper is “define ready”. Once that’s done, every other decision is a comparison against a fixed thing rather than a judgement made fresh each time.

A tell

How to know which mode you’re in, at any moment, with one question: what step am I on, out of how many?

If the answer is a number, you’re delivering. If the answer is “I’m looking”, or “I’m going through it”, or “I noticed a few things”, you’re improving, and you should check whether you meant to be. Sometimes you did. Mostly you didn’t, and the question is the reminder.

The tell works on other people too. Ask someone how a piece of work is going and listen for a position. “Three of the five checks pass, the fourth is the hard one” is a delivery. “It’s getting there, I keep finding little things” is a pass with no end, and the honest forecast for it is “whenever something interrupts me.”

The exception, and the trap

There is one honest exception: work whose shape you can’t see yet. You can’t count the steps to a place you can’t describe, and I’ve argued before that some problems only show their shape once you’re inside them. For those, the right move is still a box, just a different one: a fixed amount of time to discover the shape, at the end of which you can write the definition and count the steps. The exploration is boxed. What it produces is a plan, and then the plan runs.

The trap is using that exception as cover. Most work is not shapeless. Most work is a thing you’ve done a version of before, whose finish line you could write in ten minutes if you sat down to write it, and “I need to get into it first” is usually the pass asking for permission to start.

Why this matters more now

AI agents made the improving mode much more dangerous, and it’s worth saying why.

An agent is an anomaly-finding machine. Point it at anything and ask what could be better, and it will produce a long, plausible, well-reasoned list, every time, forever. The supply of improvements went from “as many as I can notice” to unlimited. If your way of working is the pass, you now have a collaborator who guarantees every pass finds something, and the work never ends.

If your way of working is delivery, the same agent is exactly what you want. Hand it the definition, the steps, and the box. It executes the steps against the definition, and the unbounded list of improvements it could generate is a thing you ask for once, after the line, with a box around it. The tool didn’t change which of the two modes works. It raised the price of being in the wrong one.

This post

For what it’s worth, this piece had four steps: the argument in six lines, a full draft, one read for whether the argument holds, one read for the sentences. It shipped when the fourth finished. I could see three more things to improve on the last read. They’re in a note, and the note has its own box, some other weekend.

Hsein Bitar is a product developer, DevOps and backend engineer. He owns infrastructure, CI/CD and backend architecture in production at NSquared. Who this is, and what he ships.

Read more notes