Software & Systems

Healthcare.gov: how 50 contractors and no end-to-end testing sank a launch

Case file #84·November 3, 2026·6 min read·analysis by Peter Stasko

Case file

  • What happened: The federal health-insurance exchange launched on 1 October 2013 as the public gateway to the Affordable Care Act — and collapsed within hours under load and integration defects.
  • Scale: More than 50 contractors, roughly three dozen states, a data hub touching IRS and DHS verification, and millions of Americans expected on day one; famously only a handful of users completed an enrolment that day.
  • Root cause: No true systems integrator, weak program governance across CMS and its vendors, compressed schedules, and end-to-end testing sacrificed to a politically immovable date.
  • The bill: A high-profile "tech surge" stabilised the site by December 2013, total system costs climbed by hundreds of millions of dollars, and the HHS Secretary resigned in April 2014.

Here is an uncomfortable observation from two decades of launch gates: nothing in this failure required incompetence. Every one of the 50-plus contractors could show acceptance against its own statement of work, and most of them did. The defect lived in the seams between scopes. The seams had no owner. In a car plant we have a term for a vehicle whose every component passed inspection but which has never once rolled off the line complete: we call it a prototype, and we do not sell it. On 1 October 2013, the government sold it.

50+contractors — no single integrator
~6enrolments completed on day one
90 dayscollapse to stabilisation, Oct–Dec 2013

The situation

The Affordable Care Act fixed the open-enrolment start date of 1 October 2013 in statute. That date could not slip, and everyone knew it. Roughly three dozen states declined to build their own exchanges and defaulted to the federal site — which made CMS, an agency expert in paying claims rather than in building high-volume transactional platforms, the de facto systems architect for one of the most complex web systems the US government had ever attempted.

The work was carved across more than 50 contractors. One prime held the consumer website. Others built identity management, the federal data hub verifying income and citizenship, and the insurer-facing interfaces that had to receive clean enrolment records. Requirements from states and insurers arrived late, compressing the back end of the schedule exactly where integration and testing live. Nobody held end-to-end accountability for the assembled whole.

How it unfolded

Day one brought millions of visits — concurrent load several times the roughly 50–60,000-user design assumption. The account-creation identity service became a chokepoint through which every visitor had to pass; a database registration defect throttled transactions further. Pages timed out. Error rates spiked. Enrolment records reaching insurers were incomplete or garbled. Public reporting put completed enrolments on launch day at about six.

What followed was weeks of war-room triage, then a "tech surge" — outside engineering talent brought in under an appointed manager with a single mandate and a single voice. By 1 December the site was handling its target concurrent load; by early 2014 enrolments ran into the millions. The recovery was real. So was the price: surge talent, rework, congressional hearings, a Cabinet resignation, and total costs climbing by hundreds of millions of dollars above plan.

Root-cause anatomy

Technically, three defects compounded. A late design decision forced users to register and verify identity before browsing plans — routing the entire launch-day crowd through the system's weakest component. The inter-service interfaces, website to identity service to data hub to insurers, had never been exercised together at production volume; load testing happened days before launch, at a fraction of expected traffic, and no full end-to-end run had ever completed successfully. Monitoring was thin, so the team learned of failures from the public.

Organisationally, the failure was structural. CMS was integrator by default, without an integrator's capability or contractual authority. Each contractor optimised for its own scope, and every interface between scopes was an unowned seam. When the schedule compressed, testing — the only flexible variable — absorbed the cut, because the launch date was politically immovable. Nobody was negligent in their box. Everybody was negligent at the boundary.

Where the quality system failed

Map this onto the quality disciplines and the gaps are embarrassingly legible.

  • PFMEA discipline. Load and integration failure modes were acknowledged implicitly, but the controls were occurrence-based assumptions, not detection controls. A risk with no detection ranking is a hope, not a control.
  • APQP launch-readiness. No phase gate demanded evidence of a full-system run at production volume. It is the software equivalent of submitting a PPAP with no capacity validation — parts proven, process unproven.
  • Change control. The register-before-browsing decision was a late design change injected into a nearly frozen system, without re-verification of the whole chain it touched.
  • Supplier quality. 50-plus vendors managed as separate suppliers with statement-of-work acceptance, not as one system with system-level acceptance and a named owner per interface.
  • CAPA authority. Defects found in testing were tracked, but tracking is not gating. Findings without the authority to hold a launch are decoration.
When everyone owns a piece and nobody owns the product, the customer becomes your integration test.

What would have caught it

One hard launch-readiness gate, and this dies in September: show me the last complete end-to-end run at twice forecast peak, with realistic data volumes, all 50-plus interfaces live, passing. Pass or hold. The site had never once run whole, so the gate holds — ninety days earlier, in private, when holding it was cheap.

Around that gate, four mechanisms. An accountable systems integrator with contractual authority over interfaces and the power to stop the launch. An interface test matrix with a named owner per seam — a seam with two owners has none. Detection controls in the PFMEA: synthetic transactions and monitoring running for weeks in a production-like environment, so failures surface before customers find them. And decision discipline: when a gate fails you move the date or cut scope — never the test. In manufacturing terms, run the line and build saleable product at rate before you invite the customer. Heroics made good television in December; a test plan would have made better arithmetic in September.

My take

I was not in those rooms in Washington, and nothing here is insider knowledge — the record is public and brutally thorough. But I have been in rooms shaped exactly like them. I built the QA and QC function for a 900-plus-employee greenfield plant from empty concrete upward, and the non-negotiable principle was that gates existed before volume production did: the first saleable part had to come from a proven process, not the other way round. Leading quality across a 2,000-plus multi-site organisation, the work that mattered most was holding one thread through dozens of suppliers so no seam went unowned. I have run QRQC and 8D under pressure, and the tech surge was textbook containment-plus-corrective-action — executed in the worst laboratory imaginable, live and on camera. Every serious failure-cost reduction I have delivered, from QRQC discipline to A3 problem-solving, rests on the conviction this case proves: integration is a quality function, and someone with quality authority must be able to say "not yet" and be heard. It costs a bad meeting instead of a bad launch.

What this means on your floor

  • If the whole system has never run end-to-end at expected peak, you do not have a product — you have 50 promises taped together.
  • Give every interface a named owner. Acceptance at component level proves nothing about the seams.
  • Rank detection, not just occurrence, in your PFMEA: a failure mode with no detection control will be found by your customer.
  • One integrator must hold contractual authority to gate the launch. Findings without authority to stop are paperwork.

Healthcare.gov did not fail because engineers wrote bad code. It failed because integration was nobody's job until it became everybody's crisis — and by then the customer was already holding the test report. Website or weldment, the law is the same: before the public ever touches the system, one accountable owner must gate the whole, with evidence, at volume, end to end. Skip that gate and you run the test anyway, with your reputation as the specimen.

This case file analyses publicly documented events and reports. I had no involvement in the engagements described; company statements and official findings are matters of public record. The lessons and opinions are my own.

Peter Stasko

Peter Stasko

Corporate operator across automotive and aerospace — Airbus, SNOP and Witte Automotive. Building production AI hands-on since 2016.

Seeing the same failure mode on your floor?

Every case in this library ended as a headline. A one-hour conversation is cheaper. No slides, no pitch — just an experienced pair of eyes on your situation.

Book a conversation