On October 1st, the first day of the government shutdown, the U.S. Centers for Medicare & Medicaid Services launched Healthcare.gov, a four-hundred-million-dollar online marketplace designed to help Americans research and purchase health insurance. In its first days, only a small fraction of users could create an account or log in. The problems were initially attributed to high demand. But as days turned into weeks, Healthcare.gov’s troubles only seemed to multiply. Reports appeared of applications freezing half-completed and of the system “putting users in inescapable loops, and miscalculating healthcare subsidies.” Politico reported that “Web brokers … have been unable to connect to the federal system.” Healthcare.gov is the public face of the Obama Administration’s signature policy achievement, and its launch has been widely derided as a disaster. But it could have been worse.

On September 11, 2001, the F.B.I. was still using a computer system that couldn’t store or display pictures; entering data was time-consuming and awkward, and retrieving it even more so. A 9/11 Commission staff report concluded that “the FBI’s primary information management system, designed using 1980s technology already obsolete when installed in 1995, limited the Bureau’s ability to share its information internally and externally.” But an overhaul of that system had already begun in the months leading up to 9/11. In June, 2001, the F.B.I. awarded the contractor Science Applications International Corp. (S.A.I.C.) a fourteen-million-dollar contract to upgrade the F.B.I.’s computer systems. The project was called Virtual Case File, or V.C.F., and it would ultimately cost over six hundred million dollars before finally being abandoned, in early 2005, unfinished and never deployed. V.C.F. was then replaced with a project called Sentinel, expected to launch in 2009, which was “designed to be everything V.C.F. was not, with specific requirements, regular milestones and aggressive oversight,” according to F.B.I. officials who spoke to the Washington Post in 2006. But by 2010, Sentinel was also being described as “troubled,” and only two out of a planned four phases had been completed. Sentinel was finally deployed on July 1, 2012, after the F.B.I. took over the project from the contractor Lockheed-Martin in 2010, bringing it in-house for completion—at an ultimate cost of at least four hundred and fifty-one million dollars. In the end, the upgrade took the F.B.I. more than a decade and over a billion dollars.

Healthcare.gov is not so much a Web site as an interface for accessing a collection of databases and information systems. Behind the nicely designed Web forms are systems to create accounts, manage user logins, and collect insurance-application data. There’s a part that determines subsidy eligibility, a part that sends applications to the right insurance company, and other parts that glue these things together. Picture the dashboard of your car, which has a few knobs and buttons, some switches, and a big wheel—simple controls for a lot of complex machinery under the hood. All of these systems, whether in your car or on Healthcare.gov, have to communicate the right information at the right time for any of it to work properly. In the case of Healthcare.gov, we don’t know what precisely has gone wrong, because the system isn’t open-source—meaning the code used to build it isn’t available for anyone to see—and nobody involved has released technical information. But the multiple databases and subsystems are probably distributed all over the country, written in a variety of computer languages, and handle data in very different ways. Some are brand new, others are old.

For large software projects, failure is generally determined early in the process, because failures almost exclusively have to do with planning: the failure to create a workable plan, to stick to it, or both. Healthcare.gov reportedly involved over fifty-five contractors, managed by a human-services agency that lacked deep experience in software engineering or project management. The final product had to be powerful enough to navigate any American through a complex array of different insurance offerings, secure enough to hold sensitive private data, and robust enough to withstand peak traffic in the hundreds of thousands, if not millions, of concurrent users. It also had to be simple enough so that anyone who can open a Web browser could use it. In complexity, this is a project on par with the F.B.I.’s V.C.F. or Sentinel. The number and variety of systems to be connected may not be quite as large, but the interface had to be usable by anyone, without special training. And, unlike V.C.F., Healthcare.gov was given only twenty-two months from contract award to launch—less than two years for a project similar to one that took the F.B.I. more than ten years and over twice the budget.

Early in a project, there is a phase in which the client and the contractor work together to create a description of what is to be built. This is called the specification, and building a complex software product without a clear, fixed set of specifications is impossible. The Times reported that

the biggest contractor, CGI Federal, was awarded its $94 million contract in December 2011. But the government was so slow in issuing specifications that the firm did not start writing software code until this spring…. As late as the last week of September, officials were still changing features of the Web site.

This is like being told to build a skyscraper without any blueprints, while the client keeps changing the desired location of things like plumbing and wiring.

The Times also quoted an “insurance executive working on information technology,” who said that “we foresee a train wreck” because “we don’t have the I.T. specifications.” He also said that “the political people in the administration do not understand how far behind they are.” I’ve been a software contractor for the better part of fifteen years, and no one spends that long developing software without being involved in a few troubled projects. One thing they all have in common is that “train wrecks” are never a surprise to anyone working on them. They are not discrete events; they are part of drawn out processes. We only saw the wreckage of Healthcare.gov on October 1st, but the contractors have been working on a wreck for almost two years.

A blog post on the U.S. Department of Health and Human Services Web site, in a section titled “Tech Surge,” reads, in part: