The Department of Absolute Certainty
A modest proposal for eliminating doubt, uncertainty and all other forms of reality
99% certainty that this patch will work.
There. That’s me committing to it.
It will almost certainly work.
I have examined the patch. I know what it is supposed to do. I know how it has changed. I have looked at all the most likely reasons why it will not work. I have examined many of the less likely reasons why it will not work.
99% certainty that it will work.
Apparently not good enough.
“Are you certain?”
Yes.
“Absolutely certain?”
No.
There is the problem.
I have failed to provide the required amount of certainty.
The correct answer, apparently, is:
“Yes. Absolutely. 100%. There is no conceivable possibility of anything going wrong whatsoever.”
At which point everyone nods, the patch is deployed and the website immediately catches fire.
WELCOME TO THE DEPARTMENT
The modern workplace has developed a strange relationship with certainty.
Nobody wants to know whether something is probably going to work.
Nobody wants to know what the risks are.
Nobody wants to know what assumptions have been made.
They want a number.
Preferably 100%.
“Will this work?”
“Yes.”
“Are you sure?”
“Yes.”
“Completely?”
“Yes.”
“Absolutely?”
“Yes.”
“Can you guarantee it?”
At this point, I generally want to ask whether they would like me to swear on the grave of Alan Turing.
Because what exactly do you think happens when I say “100%”?
Does the code become more reliable?
Does the server acquire a magical protective shield?
Does the database suddenly decide to stop being a database?
No.
I have merely made a louder noise.
99.9%: THE NUMBER THAT KEEPS CIVILISATION RUNNING
There is a reason that cleaning products claim to kill 99.9% of germs.
There is a reason hosting companies promise 99.9% uptime.
There is a reason nobody says:
“Our servers will be online 100% of the time, unless God personally intervenes.”
Because things happen.
Servers go down.
People get ill.
Hard drives die.
Power supplies explode.
Cables get cut.
Somebody accidentally unplugs something important.
A man in a datacentre says:
“What’s this cable do?”
And the next thing you know, half the financial system is displaying a picture of a sad dog.
The 0.1% is not a failure of marketing.
The 0.1% is reality.
It is the tiny escape hatch left open for the possibility that the universe is not, in fact, a perfectly controlled environment.
And yet, when it comes to software, we are expected to pretend that 100% certainty is entirely reasonable.
ONLY A SITH DEALS IN ABSOLUTES
It’s one of my favourite Star Wars.
I have used this at work.
It never went down well.
I thought it was a useful philosophical contribution.
The management team apparently felt it wasn’t onstructive.
This is because modern business has developed a peculiar allergy to the possibility that something might not be absolutely certain.
You are not allowed to say:
“I’m 99% sure.”
You must say:
“Absolutely.”
You are not allowed to say:
“This should be fine.”
You must say:
“This is fully resolved.”
You are not allowed to say:
“There is a small risk this could cause problems.”
You must say:
“There are no known issues.”
Which is not the same thing.
It simply means you haven’t found them yet.
THE 1% HAS BEEN LOCATED
I have been a developer for about forty years.
Forty.
Years.
I have been doing this since before some of the people demanding absolute certainty were even a concept in their parents’ minds.
I have written code in languages that now require a museum guide.
I have worked with systems where memory was something you worried about.
I have debugged problems without a search engine, a forum, a YouTube video or a large language model politely explaining that the problem is probably a missing bracket.
I have made mistakes.
I have fixed mistakes.
I have caused mistakes.
I have inherited mistakes from other people who were absolutely certain that their code was fine.
Those are the ones that worry me.
Because I am an arrogant shit.
Obviously.
But my arrogance is not based on the belief that I am infallible.
It is based on having done this job for forty years.
There is a difference between:
“I have no idea whether this will work.”
and:
“I know exactly why this will work, but I am not prepared to promise that the universe won’t throw a chair at it.”
These are not the same thing.
THE CULT OF THE GUARANTEE
There is a growing industry dedicated to pretending that uncertainty can be eliminated by filling in enough forms.
Risk assessment.
Contingency planning.
Sign-off documents.
Approval workflows.
Compliance reviews.
A meeting about the meeting.
A meeting to decide whether the meeting needs a risk assessment.
And at the end of it, somebody asks:
“Can we guarantee there will be no problems?”
No.
Of course we can’t.
We can reduce the risks.
We can test it.
We can review it.
We can prepare for likely failures.
We can have a backup.
We can have a backup for the backup.
We can have a man in a room whose entire job is to press a button if the other man presses the wrong button.
But eventually, something will happen that nobody predicted.
Because that is what “nobody predicted” means.
It is the thing you didn’t predict.
100% CERTAINLY THE WORST POSSIBLE ANSWER
The person who says:
“I’m 99% sure.”
is usually being honest.
The person who says:
“There is absolutely no way this can fail.”
is either:
- lying;
- inexperienced;
- selling something;
- about to discover an entirely new category of failure.
There is always a way.
There is always an edge case.
There is always a dependency.
There is always a third-party API.
There is always a browser update.
There is always a user.
And somewhere, somehow, there is always a database waiting patiently to destroy your afternoon.
EXPERIENCE DOES NOT MAKE YOU INFALLIBLE
The point of experience is not that you become 100% correct.
The point of experience is that you get better at spotting the 1%.
You learn which things are genuinely dangerous.
You learn which things only look dangerous.
You learn that the tiny change that looks harmless is probably going to consume three days of your life.
You learn that the enormous complicated problem will probably be solved by changing one line.
You learn to recognise the smell of trouble.
And when something goes wrong, you don’t stand in the middle of the office screaming:
“BUT I WAS 100% CERTAIN!”
You say:
“Right. That’s interesting.”
Then you investigate.
Then you fix it.
Then you learn something.
This is how competence works.
Not by never being wrong.
By being able to deal with being wrong.
THE 99% CLUB
So yes.
When I write or review code, I am often 99% sure it is fine.
I am not shrugging.
I am not guessing.
I am not tossing a coin.
I am saying:
“I have done this for forty years. I have looked at it. I understand it. I know the likely failure points. I am extremely confident this will work.”
But I am not going to claim that I am 100% certain.
Because I’m not.
And neither are you.
And neither is the person who just demanded that I be.
The patch might fail.
The server might go down.
The user might paste an entire novel into the postcode field.
The API might change.
The database might wake up and choose violence.
And if that happens, I will put my hands up.
I will say:
“Yep. That was the 1%.”
Then I will fix it.
Because I know what I’m doing.
And if you see the fact that I acknowledge the existence of uncertainty as a weakness, then, frankly, fuck off.
I have been doing this for forty years.
I am 99% sure I know what I’m doing.
And I am 100% certain that anyone who demands 100% certainty from a developer has never actually had to maintain anything.
Comments (0)