Why is Healthcare.gov not working? (from a technical perspective)


Most web applications have a architecture like the below.  There are of course nuances and exceptions, but for the layperson, this will suffice.

The “Presentation Layer” handles all the graphical packaging of content in web pages presented back to the user.  This article in the Atlantic has a good description of the Presentation Layer for Healthcare.gov.  This is definitely NOT the problem as pages of just content come back very fast without problems.  Clicking 90% of the links in the Healthcare.gov sitemap come back in under a second.  BUT, a web application with just a good Presentation Layer is like a book with a nice cover design and nice pictures inside; no one will care if the text is not good.  The rest of the Healthcare.gov web application is the text and is seems to be horribly bad at the moment.

The next part of the system is the “Business Logic” layer.  In Healthcare.gov this is called the “Data Hub” and is described here.  There is a tremendous amount of coordination between different web services (Social Security Administration, IRS, Insurers, etc.) to make sure you get the insurance you’re supposed to.  Unfortunately, this is where the software engineers for Healthcare.gov have the least control over what happens, because they are dependent on these other services to relay data back to them quickly.

Finally, we have the “Data Access Layer” and “Data Source”.  This is where all the data is stored (e.g. your name, address, age, etc.).  The data that Healthcare.gov has to collect and then connect to other relevant pieces is tremendously complex and it is very possible that many of the problems lie here as well.  Fortunately, this is one place where you can “throw more servers at the problem” to alleviate performance problems somewhat.

While the answer to the question why healthcare.gov is failing is not entirely clear, I hope you have gained an appreciation for the complexity of this very important web application and how one problem in any of it parts can make the whole application slow down.  Unfortunately, I predict that many of these problems will not be fixed quickly because of their logical complexity.  Throwing servers at the system will only alleviate a small percentage of the problems and ultimately does not substitute for quality software.  Throwing more people at this problem violates one of the few laws we have in Software Engineering — “adding manpower to a late software project makes it later”.

About Leonard Woody
Software Engineer

9 Responses to Why is Healthcare.gov not working? (from a technical perspective)

  1. Miles says:

    I am surprised you do not make more of a layer for data security considering what will be available to the bad guys

    Considering how lefty the top brass at Google are they were not consulted

    Throwing servers at solving bad coding would seem to this outsider as only making this whole mess worse, because at least lack of servers contains the bad coding, or worse lack of security…With the Feds, of course, another problem will be more bad government programs thrown at an already awful program

    Yea, from the start I was in the camp of anti-Obamacare and each day I am more so

    Wonder how the ordinary lefties in fly-over country will feel upon learning the bad guys are feasting with their personal data

    • Thanks for commenting! I’m going to keep this technical and apolitical :)

      Data security is definitely something to consider, although as far as I know, no personal health records will be kept in the system as they are not needed for the insurance process. But your SSN will most likely be in there, so security is paramount. This is data we call PII in the industry or Personally Identifiable Information. In a race to get things out the door, security can often be an afterthought and I hope this is not the case here.

      “Throwing Servers” will only help in things such as make a database perform faster, but as you point out, it will not solve bad coding. I guess not throwing servers at it will make sure the assumed insecure code never operates on your personal data since no one will be able to input data to the system. But this seems to be like cutting off your nose to spite your face. :)

      • Miles says:

        Politically, I am a Libertarian Lite :)
        I do NOT trust any party in Washington, because always I find follow the money clarifies so much of the antics spewing from Washington, and both parties merely like to swap around who gets to use legalized force for the latest, greatest ideas

        I can only speak as a big internet user to observe what works and does NOT work for me
        For example, Google did not roll out as Google as we know it today
        I was an early user when I told people to use it they thought I was joking, because the “look” then was the “Yahoo” look; i.e., crowd the browser, BE BUSY!!!!

        Google evoked
        Ditto, Amazon, eBay, Netflix, etc.
        I know, because I was an early user
        As an end user, I do NOT have to know about the complexity behind the curtain
        For me, I see the simplicity

        I know they “mine” my data, but I also trust where money is involved the bad guys in “Nigeria” cannot easily crack into eBay, Amazon, eBay…If the bad guys do, these companies answer the freaking phone–within minutes (try the VA, the IRS, for contrast)
        I get the feeling these online companies want my business
        5 years from now Obamacare will be run as obtusely as the VA, the IRS, and so on

        In sum, I bet as a coder, you have learned at Hard Knock U do NOT shoot for the complex
        Build from the simple up, fine tuning as a you build up
        I bet you do NOT go to a well-heeled client with obvious coding issues and say, “Solve your problem with more servers”
        Solving issues this way only pleases the bad guys, because they can crash sites and/or steal data faster if there are more servers using weak coding

    • Hey, if we had just gone straight to the single-payer system they all really want, we wouldn’t have any of these problems, right?? Yeah, right.

  2. Ken Royall says:

    The government had 3 years to put this together. You make some good points but any senior programmer would have understood the latency issues related to retrieving data from disparate sources up front. The key is to design the system architecture accordingly.

    The other glaring problem is you can’t view and evaluate any plans unless you go through the registration process first. This puts the cart before the horse. eHealthInsurance.com has been running for years and it would have served as a useful guide for a starting point.

    On that site you put in some very basic info and you can peruse different plans within seconds, no need to go through the entire registration process first.

  3. Grampa Joe says:

    Leonard, I appreciate and understand your desire to keep the discussion apolitical. However, I think that is impossible. It may be that there has never been a system built as politically driven as this one. The legislation for it was crafted in dark of night entirely by leftist pols, and passed on entirely Democrat votes, with neither support nor input from approximately half the country. From a project management perspective, this means that half the stakeholders were shut out of the process, no buy in, no input to requirements, and the seed bed of predictable future miscalculations and rebellion, not exactly the right recipe for a successful project.

    As a result of this Berlin Wall mentality, there was no way to offset the hubris of the “We Won” caucus, thus no sense of urgency in producing a product that would succeed in marketing the *idea* of government-managed healthcare. Why try to sell what people must accept by force? At the very least, some small scintilla of humility might have led the developers to set the partisan political agenda aside long enough to get the data integration working at maxed out loads to ensure the psychological result of a happy end user. But politically, for these people, happy end users are NOT as important as jamming forward with a political agenda. It is so self-defeating, but so classically thug politics, and it cannot be ignored in doing a root cause analysis of what is wrong here.

    BTW, for the record, I do not support Obamacare at all. I am happy to see it crashing and failing. The reason free markets work better than top-down central planning schemes is they distribute the load of economic decision-making to the individual “processors,” we the people. The capacity of a distributed system to handle vast multivariate processes effectively is well established. It is good science, not just a political brand. The creators of “Obamaware” have rejected that reality, on a party line basis, and the results reflect that poor decision.

    • Thanks Grampa Joe for your comment. It is very hard to stay apolitical in this technology quagmire. I’m pretty sure all sides would agree though that they should have done a better job on this system. They did have a considerable amount of time to get this right.

    • Miles says:

      Grandpa Joe, spot on
      3 years to get in the “ballpark” and what was to cost around $98 million dollars to get into the park, now over $600 million dollars and still climbing
      Using the IRS and other legalized force and still failing

      Worse though is the audacity and obtuseness to not even admit there are more the usual wittle expected cliches

      Besides all this is Obamacare is NO longer this with the daily wavers we hear about

      Oh, oh remember Grandpa how tech savvy the Obama presidential runs were and applauded for being so, yet this nightmare
      None of the software left coast lefties apparently were used other for photo ops, and Obama pretty much owns this class

      Wolfgang Pauli says it all: “It is not only not right, it is not even wrong”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: