Skip to content

Article

The pre-commitment is the whole test - naming the fact before you loo…

The pre-commitment is the whole test - naming the fact before you loo…

By ~5 min read

The line that turned it around for me is this: every test you write is an interview with yourself.

I stared at that for a bit. It is the sort of dumb-true thing you either shrug at or take seriously, and if you take it seriously it eats a lot of what you thought you knew about testing. The fixture inherits your noun. The assertion inherits it. The mocks, the integration harness, the little smoke test you run before you push - all of them inherit the words you already had in your head when you sat down. If the noun is wrong, the badge is a lie printed by a machine you built to print exactly that lie. Louder tools do not fix it. They make the print bigger.

I have shipped this bug alone. That is the part that made me sit up.

The comforting version of the story is that two engineers had different definitions of the noun and nobody caught it - a coordination problem, solvable with better meetings. But I have shipped the same class of bug on a solo project at 11pm on a Sunday, no one to disagree with, and it went every bit as green as any team version. Nobody to blame. The bug lives inside one head, and my head is very good at agreeing with itself.

So the “just walk it through the system” advice does not, on its own, save you.

Walking a card through ingest while narrating what you see is a lovely activity that produces the same feeling of confidence you already had. Your eyes will find the number that looks right. Your brain will accept the log line that fits. Narration is generous. Anything you can already see, your brain reads as evidence of the thing you already thought.

The pre-commitment is the whole game.

Write the fact down first. On paper, in the PR body, in a Slack DM to yourself - I do not care where. “quokka-3917’s cited-by count is currently 0. After the next ingest run it will be 1.” Then look. Not before. After.

That single act - name the fact before you see it - is the only thing in the entire process that lives outside your head. Everything else in your workflow is your head, checking with your head, using your head’s own vocabulary. The pre-commitment is the moment your model of the world touches something it cannot rewrite in flight. If the number is 1, your model held for this one card. If it is 0, or 3, or missing, you have your first honest signal in six months. That is the first thing you have looked at that had a chance of disagreeing with you.

The walking part - through ingest, through the curator, out to the surface - is just the mechanism that gives the pre-commitment a place to be right or wrong. Walking is not the test. Walking is the venue.

Now, the reason grown engineers skip this - and I mean grown, senior, well-paid, nice people who know what they are doing - is not laziness. It is bookkeeping.

A walked artifact does not close a ticket. It does not produce a coverage number. It does not turn a square green in Jira or a badge green on a PR. No diff. No artefact. The deliverable is one record, sitting quietly in the system, with one fact about it changed to match what you said it would be. That is invisible work in a culture that has spent a decade optimising for visible work. So it gets read as nothing and skipped, by people who know better, because our idea of what counts as engineering has been quietly corrupted by the apparatus we shipped last quarter.

I do the walk anyway. Not because I am virtuous - I skipped it plenty of times and got exactly what I deserved. I do it because I have lived the alternative, which is the year you spend explaining why a count is what it is to a stakeholder who is polite but done, and the year after that when someone finds the number is load-bearing on something else you shipped, and by then it is too late to name the fact honestly, because you can no longer tell whether you named it before you looked, or after.

The other trap - and this one has cost me the most, honestly - is systematising the walk too early.

First green walk, brain lights up, “let me parameterise this, let me matrix it, let me wire it to CI so it runs every night!” That is your apparatus instinct back on stage in a different hat. If you automate after one walk, you are locking in whichever version of the noun was true at the moment you locked it. You are not testing your model anymore. You are canonising it. And canonised nouns are the ones that get load-bearing before anyone notices they are wrong.

So the answer, for me, has settled into something small and unimpressive. Walk it once, pre-commit first. If it holds, walk it again with a different artifact. Then a third, ideally by someone whose head is not mine. Only after the vocabulary has held up to hand-walked demand three or four times does CI get a turn. Slower than what my apparatus brain wants. Also the only version I have found that does not eventually cost me a year.

The follow-on question I keep chewing on - and I do not have a clean answer to it, which is why I am asking - is what “quokka-3917” looks l…