The Quality Threshold Problem

You spend too much time chasing perfection and then ship late anyway, while your competitor ships something that works and takes your market. This happens constantly in software, manufacturing, and even creative work. The answer isn't to try harder, it's to define what acceptable actually means before you start building. I've seen teams burn three months refactoring code that was already performing within spec, and I've seen products launch with known flaws that users never complained about because the flaws lived in areas nobody used. The concept itself is straightforward but brutally underutilized. You establish a measurable threshold for acceptable quality on each dimension that matters, then you stop optimizing once you hit it. The dimensions are things like performance, reliability, usability, cost, and time-to-market. Most teams pick one dimension and optimize it while the others drift into failure territory. I watch this happen every single project cycle. The practical method works like this. First, list every quality dimension your deliverable needs to satisfy. Second, assign each one a minimum viable threshold and a target threshold. The minimum is where the product breaks for users. The target is where it feels good. Third, rank them by importance using something like a weighted scoring matrix. Fourth, build to the minimums first, then use remaining resources to push the important dimensions toward their targets. You don't touch low-importance dimensions until the high ones are done.

Here is where people mess up. They set the minimum threshold too high because they feel insecure about shipping something imperfect, or they set it too low because they don't actually understand what breaking looks like. Both are expensive mistakes. The minimum should be based on data, not feelings. If you can't measure when something breaks, you can't define good enough. I worked on a cloud infrastructure migration a few years ago where we needed to define acceptable latency for a new API layer. The old system averaged 200 milliseconds. Engineering leadership wanted under 50 milliseconds because that felt "modern." I pushed back hard. We ran load tests against the new architecture and discovered that at 120 milliseconds average, error rates were effectively zero and user complaints were nil. At 80 milliseconds, we gained nothing measurable in user satisfaction but burned twice the server costs. We set the good-enough threshold at 120 milliseconds and saved about forty percent of the infrastructure budget that year. The 50-millisecond target would have required a complete redesign with no user-visible benefit. The counter-intuitive part that most people miss is that good enough is not static. It moves as conditions change. A threshold that makes sense at launch might be completely wrong six months later when traffic doubles or a competitor ships a better product. You need to review your thresholds on a schedule, not just set them once and forget them. I recommend revisiting them every quarter or whenever a major incident occurs.

Another thing beginners consistently get wrong is applying good enough thinking uniformly across all dimensions. It should be wildly uneven. Some dimensions deserve aggressive optimization while others get the bare minimum. Your payment processing system should probably aim for target-level reliability. Your internal admin dashboard can probably live at minimum-level reliability with no one noticing. The problem is when teams spread their optimization effort thin across everything instead of concentrating it where it actually moves the needle. There are scenarios where this framework fails completely. If you're working in a regulated industry where the legal minimum is the only thing that matters, good enough thinking can create dangerous complacency. I've seen compliance teams treat regulatory minimums as aspirational rather than absolute floor, and that has gotten people fired and companies fined. In those environments, the threshold isn't good enough, it's mandatory. Another failure mode is when your users can't articulate what they need. If you're building something novel with no reference point, setting a good enough threshold is basically guessing, and guessing poorly is worse than not guessing at all. In those cases, you need a different approach entirely, usually rapid prototyping with real user feedback loops until you can identify what acceptable actually looks like. Here is a concrete example from a product I shipped last year. We were building a report generation feature for a SaaS platform. The engineering team wanted to support custom SQL queries because that would be more powerful. I asked what percentage of our actual user base would use that feature. The answer was eight percent. We set good enough at a pre-built query builder with twelve template options, which covered ninety-two percent of reported use cases. The SQL feature got cut from the scope entirely. We shipped two weeks early and still had higher satisfaction scores than the original plan would have delivered.

Get the Full Details

How Good is Good Enough? by Andy Stanley
How Good is Good Enough? by Andy Stanley

If you want to start applying this tomorrow, the first step is to write down your current project's quality dimensions on a single page. Don't overthink it, just list them. Then for each one, write the lowest number or percentage you would accept before calling it a failure. That exercise alone will probably surprise you and immediately show you where you've been over-optimizing without meaning to. The hardest part is convincing stakeholders to agree on the minimums. They will argue for higher targets because they don't want to be held accountable for shipping something imperfect. That is a real political problem, not a technical one. The workaround I use is to frame minimums as risk mitigation, not laziness. When you say we're cutting corners, people resist. When you say we're explicitly defining where we accept risk so we can concentrate effort where it matters most, people usually sign off. The language shift matters more than you would expect. One more thing worth noting, good enough is deeply personal to each project. There is no universal formula. A game company might set graphical fidelity at target while setting server uptime at minimum because their players care more about how things look than whether the matchmaking service occasionally hiccups. An airline booking system is the exact opposite. You have to understand your users, not just your technology. The best threshold definitions come from people who have actually watched users interact with the product, not from architecture reviews or spec documents.