perfect is the enemy of good

expression

ops cultureprogramming

Voltaire's warning that pursuing the flawless blocks shipping the sufficient.

In engineering it pairs with the ninety-ninety rule: the last polish costs the most and pays the least. The judgment call it demands - which imperfections are acceptable - is the actual job; the proverb just forbids answering 'none'.

Voltaire's line is the standard argument against over-engineering, and it is correct often enough to be dangerous, because it is equally often used to justify shipping something that should not ship. The judgement it requires is which situation you are in.

Where it applies: a feature delayed for polish nobody asked for, an architecture generalized for requirements that may never arrive, a document revised past the point of usefulness. In all of those the incremental improvement is worth less than the delay costs, and shipping something good now genuinely beats something perfect later, because later is often never and the feedback that would tell you what perfect means arrives only after release.

Where it does not apply is anything where the cost of being wrong is not recoverable. Cryptographic implementation, safety-critical logic, data migrations, permission models and anything handling money or identity all have failure modes that are not fixable in the next sprint. Invoking the aphorism there is a category error, and the useful discriminator is asking whether a mistake is reversible. If it is, ship and iterate; if it is not, the extra week is cheap.

Also known as: done is better than perfect

All glossary entries