Skip to content

Quality Is Designed In

The phrase comes from W. Edwards Deming, applied originally to manufacturing: "Cease dependence on inspection to achieve quality. Eliminate the need for inspection on a mass basis by building quality into the product in the first place."1 Half a century later, the same argument is the cleanest articulation of why testing-heavy software cultures often fail to ship quality software.

Inspection, in software terms, is the QA pass at the end of the pipeline, the release-gate test suite, the security scan run the day before launch. It can find defects. It cannot prevent them. By the time a bug is detected at inspection, the cost to fix it has already been paid: in the design choice that allowed it, in the implementation that encoded it, and in the test cycle that has to find it again every time the work passes through.

Quality, like cost, is a property of the system that produces the software. Trying to bolt it on at the end is more expensive and less effective than designing it in.

Why Inspection-First Fails

Quality cultures built around end-of-pipeline inspection share a few characteristic failure modes:

  • Defects pile up at the gate. The QA team, the security review, or the release process becomes the bottleneck. Work piles up in front of it; the rest of the pipeline runs faster than the system can absorb.2
  • The wrong people own quality. Quality becomes "the testers' job" or "the security team's responsibility" rather than a property of how the whole team works. When the inspectors say no, the work goes back upstream, where the team that produced the defect is now treating quality as someone else's problem.
  • Inspection finds symptoms, not causes. A bug discovered at release tells you something is wrong. It rarely tells you the design choice, the missing requirement, or the broken assumption that produced it.
  • Recurring defects become routine. Without upstream cause analysis, the same defect keeps appearing in different shapes. The inspectors get faster at catching it; the system never stops producing it.
  • "Quality" and "speed" become opponents. When quality lives at the gate, every conversation about going faster sounds like a conversation about lowering the bar. The two should not be in tension. They are only in tension when quality is positioned downstream of everything else.

Where Quality Actually Comes From

Quality in software is produced upstream, by a system that makes defects unlikely to enter and easy to detect when they do. The components that matter most:

  • Architecture. Systems whose structure mirrors the problem they solve are easier to reason about, easier to change correctly, and resistant to whole categories of bugs that would otherwise be possible.
  • Engineering discipline. Practices like code review, version control hygiene, automated testing, observability, and trunk-based development build quality into the everyday motion of the team, not into a separate phase at the end.34
  • Product clarity. Most defects are not coding errors. They are misunderstandings of what the software was supposed to do. Clear requirements, well-defined acceptance criteria, and a product owner who can answer "is this what we meant?" prevent more defects than any test suite catches.
  • Workflows. How work moves through the team determines what quality looks like when it arrives. A workflow that pushes work in batches, without feedback, produces different defects than one that ships small changes continuously.
  • Feedback loops. The faster the team learns about a problem, the cheaper it is to fix and the less likely it is to recur. Slow feedback loops are quality problems disguised as productivity problems.
  • Incentives. Teams produce what they are rewarded for. If shipping more is rewarded and shipping well is not, the system will reliably produce features that ship and quality that does not.5
  • Operational learning. Every incident, every customer complaint, every support escalation contains information about how the system actually fails. A team that systematically converts that information into changes upstream has a quality program. A team that does not has a backlog.

A QA team can supplement this list. It cannot substitute for it.

The Cost Curve of Late Defects

The economic case for designing quality in is the same case Deming made for manufacturing: defects get exponentially more expensive the further downstream they travel.6

  • In design. A misunderstanding caught in conversation costs the time of the conversation.
  • In code review. A defect caught before merge costs a small change in the same branch.
  • In CI / pre-merge testing. A defect caught by automation costs a slightly larger change before the work is widely visible.
  • In QA or staging. A defect caught after merge costs the time of investigation, the fix, the re-test, and the coordination of however many other changes are now in flight.
  • In production. A defect caught after release costs the customer impact, the incident response, the rollback or fix-forward, the postmortem, and the rebuild of trust.
  • In the field, latent. A defect that ships and sits undetected costs whatever the customers do with the bad behavior, plus all of the above when it is eventually found.

Each step is roughly an order of magnitude more expensive than the one before. The cheapest place to spend a dollar on quality is at the earliest step. The most expensive is in production. Inspection-first cultures pay at the wrong end of this curve.

What This Looks Like in Practice

A few habits move quality upstream:

  • Treat quality as a property of the team, not a phase of the work. Designers, product owners, engineers, testers, and operators all contribute to whether quality emerges. Owning quality means owning the choices that produce it.
  • Make defect causes, not just defect counts, visible. Every recurring defect category is a system telling the team what to improve. A defect taxonomy that traces back to causes is more useful than a bug count.
  • Shorten feedback loops aggressively. Fast tests, fast builds, fast review cycles, and fast deploys all reduce the time between a defect being introduced and the team learning about it.4
  • Stop the line for systemic problems. When the same class of defect appears repeatedly, the right response is rarely to fix the instance and move on. The right response is to stop introducing new work in that area until the upstream cause is addressed.
  • Push inspection earlier in the pipeline. Linters, type checkers, automated security scans, contract tests, and code review catch defects before they reach human inspection. They are inspection by another name, but inspection at the cheapest end of the curve.
  • Resist the urge to "add more QA" as a quality strategy. More late-stage inspection is rarely the answer. More upstream investment usually is.

Key principle

Inspection can detect defects. It cannot create quality by itself. Quality in software is the visible behavior of an invisible system: the architecture, workflows, incentives, feedback loops, and product clarity that determine what defects are even possible.

See also: Systems Thinking, Testing Is Not Quality, Maintainability, Continuous Improvement, Perfection Is Irrational.



  1. W. Edwards Deming, Out of the Crisis (MIT Press, 1986). Point 3 of Deming's Fourteen Points for Management reads: "Cease dependence on inspection to achieve quality. Eliminate the need for inspection on a mass basis by building quality into the product in the first place." The argument was made about manufacturing; it ports cleanly to software. 

  2. Gene Kim, Kevin Behr, and George Spafford, The Phoenix Project (IT Revolution Press, 2013). The novel's central operational arc shows what happens when end-of-pipeline inspection becomes the constraint that limits the whole system's throughput. 

  3. Gene Kim, Jez Humble, Patrick Debois, and John Willis, The DevOps Handbook (IT Revolution Press, 2016). The framework companion to The Phoenix Project, with concrete patterns for shifting quality work upstream in the deployment pipeline. 

  4. Nicole Forsgren, Jez Humble, and Gene Kim, Accelerate: The Science of Lean Software and DevOps (IT Revolution Press, 2018). The empirical research showing that high-performing engineering organizations are also high-quality engineering organizations, and that the practices producing both are the same. 

  5. Alfie Kohn, Punished by Rewards (Houghton Mifflin, 1993). On why incentive structures designed to motivate one behavior frequently produce the opposite, and why "rewarded for shipping" reliably degrades the quality of what ships. 

  6. Barry W. Boehm, Software Engineering Economics (Prentice Hall, 1981). The originating empirical analysis showing that the cost of fixing a defect grows by roughly an order of magnitude at each successive phase of the software lifecycle, from requirements through maintenance.