Monday, December 2, 2013

Bread, Keyboards And Triangles

The profound and inevitable disaster that is HealthCare.gov is becoming undeniable and those of us on the Dilbert side of the Pointy Hair Boss vs Engineer relationship can only smile in amusement as knee-slapping laughter is considered impolitic. Even the lowest estimates of money spent indicate this was a disaster in the making. Taking the low estimate $174 million spent to date* this represents an incredible army of programmers. If you take only $80 million as technical workers and the rest dedicated to management and G&A it is still enormous. The industry budgets $250,000 for a man-year of software development at North American rates. Not off-shore which is a five for one price or H1-B which is half price. Conservatively this means the feds put 240 man-years to develop a system that 3 guys built in 3 days** on their own. Clearly the Feds put too many developers on this for it to ever succeed.

But why the disparity? How can 2 man weeks kick ass and 240 man-years beget an unusable, fragile piece of internet crap? Is it simply that anything the Federal government touches immediately turns to shit? As it happens it is a bit worse than that. Many engineers in corporate product development and IT groups see the same thing day in and day out. They could write the script.

  1. Effort estimates were success-based and milestones are slipping.
  2. Management turns up the heat with "work harder--we tried smarter and that didn't work" resulting in little more than an existence proof that software development is like baking bread--when it is not done on time turning up the heat produces a very undesirable outcome.
  3. Developers approach management asking for more time pointing out they've hit the keyboard bandwidth barrier*** but are mistakenly relying on bobble-head bosses' assurance that they understand Brooks' Law. They don't and assign more programmers instead of allocating more time. The project gets later faster.
  4. Reality forces management to accept that the project jumped the shark at the keyboard bandwidth thingamajiggy and reluctantly negotiate the Iron Triangle**** resulting not only in schedule slip but in "de-featuring" the commitments.
At this point cost in dollars and political capital is out of control. Obama's ratings in any area on any scale by any metric have tanked. As for money David Powner, the director of IT management at the Government Accountability Office, responded when asked how much it will cost to fix the website: “We're kind of blind to that.” Ahhh, what cost to clean that egg off the face of POTUS?

Though this project has serious systemic problems related to ignorance regarding modern software development techniques the real problem is that the Federal government should never have been engaged in health care in this fashion in the first place. If the goal was shifting resources from Medicare to Medicaid then enact legislation to effect the changes. If the goal was to define minimal levels of insurance coverage or eliminate "previous condition" exclusions this too can be handled in the regulatory arena. 

Governments need to stick with what they do best, regulation and oversight, and stop meddling with those things that will ultimately be resolved by competitive players in an open market. And governments large and small would be well advised to steer clear of software development. 



* It isn't clear if this is total development or just fixes after the rollout disaster. 
** http://www.thewire.com/technology/2013/11/three-guys-built-better-healthcaregov/71195/
*** Originated by a member of TOD in response to management pressure to accelerate development: "even if I knew exactly what to type it simply cannot be typed that fast--I'm at the keyboard bandwidth barrier."
**** When, What, and How Well. You can pick at most one, influence another and have no control whatsoever of the third. The Iron Triangle is not flexible.