Wednesday, November 13, 2013

Fixing HealthCare.gov

The HealthCare.gov debacle seems like a textbook case of everything that can go wrong in a large software development project, especially in the public sector where the procurement rules make it almost impossible to apply the hard lessons the software industry has learned in the past forty years—although some mistakes are inexcusable, like failing to appoint a single executive who was responsible for this and this alone, all day every day, with the authority to get it done. That's the quickest way known to mankind to screw up a project like this.

I might blog on that and other mistakes at length some other time, but for now I'm more interested in what happens next. I can't help but laugh at the Obama administration's promises that it will all be fixed by the end of this month.

I have been designing, planning, and implementing large, complex, mission-critical government systems for the past twenty years. If I had been planning this project, I would have allowed at least three months for testing and fixes. By the end of this month, they won't even understand what all the problems are, or even have a concrete plan to fix it, let alone have time to actually fix the problems.

Testing systems that have thousands of inter-dependent functions in them is hard, and it requires a very methodical approach. You need a plan that ensures you test as many of the different paths through the process as possible. If the system has lots of rules and options and interfaces with other systems, and this one does, testing becomes a major project in its own right, and unless you apply the same discipline to testing any fixes, you run the risk of introducing more bugs without knowing it.

I don't have any inside information, but I ask myself what's going on inside this project right now, and my answer is that they are all running around like headless chickens in response to the enormous political pressure they must be feeling. Which means they are just spinning their wheels and that each week that passes doesn't bring the problem a week closer to resolution, it just pushes the true resolution date out another week.

My prediction is this thing won't be working in any meaningful sense of that word for at least three months and probably six.

No comments: