Everybody knows the phrase “the perfect is the enemy of the good” attributed to Voltaire. But sometimes even “good” is way too much for what is needed, i.e., “the good is the enemy of the good enough”.
The search for quality can go on forever because there’s always space for improvement. In software development we know this and that’s why we have agile methodologies, which have the terms “early and frequent delivery” in two of their principles:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
source: Principles behind the Agile Manifesto
There are other two quotations, from Coding Horror blog, that remind us why “the good is the enemy of the good enough”:
Version 1 sucks, but ship it anyway.
If you aren’t embarrassed by v1.0 you didn’t release it early enough.
Fast iterations give us rapid feedback, so we can correct course and make the software as close as possible to customer requirements