What "production-ready" actually means
ENGINEERING
OCTOBER 5, 2026

What "production-ready" actually means

4 min read
BACK TO BLOG

Every agency says it. Almost none say what failing the test would look like. Here is the checklist, with the failure beside each line.

"Production-ready" is the most load-bearing phrase in software sales and almost nobody defines it. It is doing the same work as "results-driven" or "enterprise-grade": it sounds like a standard and commits to nothing.

So here is a version with the failure written next to each item. A checklist you can fail is worth something; an adjective is not.

Can only the right people see the right things?

Passes when: a logged-in customer cannot reach another customer's records by editing the address bar, and a logged-out stranger cannot reach anything private at all.

Fails like: nothing. It looks identical. You find out when a customer mentions seeing a name they did not recognise.

Are your secrets actually secret?

Passes when: every key — database, payments, email — lives on the server only, and rotating one is a config change rather than a redeploy of the app.

Fails like: nothing, again, until somebody opens the browser console or reads the page source, both of which are menu items.

Does the app tell someone when it breaks?

Passes when: an unhandled error reaches a human within minutes, through a channel that human actually watches.

Fails like: silence that is indistinguishable from things going well. This is the one I would put first if I had to pick. A system whose failures are quiet gets more reassuring the more broken it becomes, because the complaints stop too — the customers just leave.

Can you change it without fear?

Passes when: there are automated tests over the parts that would cost money to get wrong, and you can run them in one command.

Fails like: a creeping unwillingness to touch anything. The app stops improving, and everyone involved describes this as "being careful".

Does it survive a second person?

Passes when: two people using it at once do not collide — no double bookings, no two customers assigned the same order number, no half-written record left behind when someone closes a tab mid-way.

Fails like: intermittent weirdness that cannot be reproduced and gets written off as a fluke three times before anyone takes it seriously.

Could someone else take it over?

Passes when: a competent developer who has never seen it can get it running locally from a written README, and the important decisions are explained somewhere.

Fails like: you being permanently on call for your own side project, and any future developer quoting you for a rewrite because reading it is harder than replacing it.

Is there a way back?

Passes when: the data is backed up, you have restored from that backup at least once, and you can roll back a bad deploy.

Fails like: a backup that has never been tested, which is not a backup. It is a belief.

What this list is not

It is not a feature list and it is not about elegance. You can pass every line here with code that would embarrass a senior engineer, and plenty of beautiful code fails most of them.

It is also not all-or-nothing. If you are putting five friendly customers on something, the error alerting and the access rules matter enormously and the handover documentation can wait. The point of writing the failures down is that you get to choose which ones you are accepting, rather than discovering later that you accepted all of them by default.

How to use it

Go through the seven, honestly, and mark each one pass, fail, or do not know. "Do not know" counts as fail for anything touching money or customer data.

If you come out with two or three fails, that is a normal result for something built fast, and it is a week or two of specific work rather than a rebuild. The expensive version is not having looked.


Run the free website check — the public-site version of the same instinct: specific findings, ranked by what would actually cost you.

If you want this checklist run against your own app by someone who has had to pass it himself, tell me what you have built. A written audit is a fixed price and you keep the document whatever you decide to do next.

SHARE
4 min read
Read More

MORE ARTICLES

MSUFCU turned its own website off. That was the right call.
Engineering
Engineering

MSUFCU turned its own website off. That was the right call.

A PHP flaw became unauthenticated remote code execution with no workaround, so banks and governments went dark on purpose. What happened in Lansing, and why.

I gave an AI agent a wallet and a spending limit
Engineering
Engineering

I gave an AI agent a wallet and a spending limit

An autonomous client paid for its own API call in stablecoins. The payment was the easy half — the interesting half is the record of what it was refused.

The demo worked because you built it on your own data
Engineering
Engineering

The demo worked because you built it on your own data

The most expensive failure in applied AI is the one that looks like a success. Here is the test that catches it, and why it has to be able to fail.

How to read the arithmetic on a views guarantee
Engineering
Engineering

How to read the arithmetic on a views guarantee

A real offer promises 10 million views in 90 days or you do not pay. Here is the division that tells you what you are actually buying.