No, Uncle Bob, No – the Obligatory Post

Good for what ails you?

I tried to avoid this one. First of all, I don’t do politics on this site and this topic has way too much political baggage. Second, a great many people have already written about it, so I didn’t think I really had anything to add.

Then, Uncle Bob Martin chimed in.

I agree with some of what he has to say. I have no doubt that this particular debacle has harmed the image of software development in the eyes of the general public. Then he falls over the edge, comparing the launch of with the Challenger disaster. After all, in both cases, political considerations overrode technical concerns. Regardless of this, Bob puts the blame on those far down the ladder:

Perhaps you disagree. Perhaps you think this was a failure of government, or of management. Of course I agree. Government failed and management failed. But government and management don’t know how to build software. We do. We were hired because of that knowledge. And we are expected to use that knowledge to communicate to the managers and administrators who don’t have it.

The thing is, the Centers for Medicare and Medicaid Services (CMS) is both a government agency and the system integrator on the project. While there’s plenty of evidence of really poor code across the various parts, the integration of those parts is where the project fell down. Had the various contractors hired numerous Bob Martin clones and obtained the cleanest of clean code, the result would have still been the same.

Those with the technical knowledge and experience are, without a doubt, obligated to provide their best advice to the managers and administrators. When those managers and administrators ignore that advice, it is incorrect to allege that the fault lies elsewhere.

The end of the post, however, is the worst:

So, if I were in government right now, I’d be thinking about laws to regulate the Software Industry. I’d be thinking about what languages and processes we should force them to use, what auditing should be done, what schooling is necessary, etc. etc. I’d be thinking about passing laws to get this unruly and chaotic industry under some kind of control.

If I were the President right now, I might even be thinking about creating a new Czar or Cabinet position: The Secretary of Software Quality. Someone who could regulate this misbehaving industry upon which so much of our future depends.

Considering that all indications are that the laws and regulations around government purchasing and contracting contributed to this mess, I’m not sure how additional regulation is supposed to fix it. Likewise, it’s a little boneheaded to suggest that those responsible for this debacle (by attempting to manage what they should have known they were unqualified to manage) should now regulate the entire software development industry. For a fact, the very diversity of the industry should make it obvious that a one-size-fits-all mandate would make matters irretrievably worse.

Handing out aspirin to treat Ebola is just bad medicine.


20 thoughts on “No, Uncle Bob, No – the Obligatory Post

  1. One question I found myself continually pondering as I read Martin’s rant…. were all of these engineers who should have pulled the plug “essential workers” and actually AT WORK on the evening of September 30th (presumably when everybody was running around in a mad panic trying to fix the unfixable)… or were they at home pondering the start of their indeterminate extended vacations that were effective at 12:01am on October 1st.

    Incidentally, with respect to the question “Who knew what, and when?” according to a story I read on TechCrunch posted last week, from an NBC News exclusive, it was known that the site only had capacity for 1100 users. So, yeah, I’d like to know who was the idiot who signed off on launching a website that had such well-documented limitations.


    • yeah, that Dozer guy is the wor…I mean greatest, yeah, great guy 😉

      Although our attitudes and approaches are probably quite different, I do have a lot of respect for Bob’s work on code quality. I just feel like he wandered too far afield with this one.


  2. This is hands down the stupidest thing I’ve read all day. And I’m at the end of my day, so it’s likely to stand.

    Don’t get me wrong- the development teams have their share of blame. I’ve written about that enough. But a development team can only do so much. And there were so many failings in management that far better teams than this would still have failed. I’ve said it before, and I’ll say it again here. This project was doomed from the start. It could not have been completed successfully.

    As for government regulations on what languages are permissible, that’s only rivaled by education requirements legislation in sheer stupidity. The language is irrelevant (I think I’ve written about that, but if I haven’t, I should) and so is formal schooling. A couple of the worst developers Iv’e worked with had CS degrees from respectable schools. One of the best has a degree in Kineseology. Or “Majored in gym class”, to put it another way. I myself have no degree and one of the better developers I know has been doing this as long as I have and only recently got a degree. In Business Management. There’s no correlation. If a developer is passionate, the skills will come. If not, a degree isn’t going to fix the real problem.

    Harsh? Maybe.


    • I definitely agree that the idea of these being legislated is ridiculous. I really don’t think software development is understood well enough to suggest “best practices” (*), much less mandate qualifications and techniques.

      * Identifying a “best” practice absent a specific context is snake oil in my opinion.


  3. More regulation won’t fix this problem. And there are no “best practices” for complex situations. It is unethical to pretend to predict the future, and it should be illegal to write millions of dollars of contracts on lies. I agree with Uncle Bob that our profession needs to improve its ability to say “no”, but on the other side of the coin there exists a lack of respect for the software development profession. Every time I teach or coach in the DC metro area, I’m reminded of this dysfunction and waste when people say “Um, yeah, we have 17 product owners, and they’re senators, and none of them will take responsibility for anything because if it fails they won’t get re-elected.” And yet these contractors reluctantly admit to creating proposals and signing contracts on lies and presumptuous “predictions”, thus feeding the beast. is a direct result of greed, lies, and unethical contracting practices.


    • “More regulation won’t fix this problem.”

      Indeed…quite the opposite, it’s almost guaranteed that it would make it worse in that the current purchasing and contracting regulations set up situations where both sides know (or should know) that you can’t precisely predict the future, but everybody has to go through the motions because “that’s the way it’s done”. Calling it insanity is giving it too much credit.

      We already have the ability to say “no”. Just like doctors, lawyers, etc. we can quit/fire a client. The thing that’s missing from the referenced article is that life is almost never binary. Most dilemmas are such because most often we cannot be certain of a harm. One party is responsible for providing the best available advice and the other party (the one paying) is responsible for making the decision. Blaming the adviser for the outcome is only appropriate where information was available to them and withheld or concealed.


  4. @Gene, I could not agree more. When management practices “It will be OK” culture, can you expect engineers to behave otherwise?
    This subjects deserves a separate, more detailed, response, which I will post in my blog in the coming days.


  5. Pingback: Don’t Worry, Be Happy… Until One Day | Becoming agile

  6. Larry Hirschhorn writes about the Healthcare.Gov failure in his latest blog-post.
    Long post, very interesting read.
    He suggests that the dynamics that enacted the Obama administration had seeped through to other level.!
    A short quote from the blog:
    “…[T]his concept of a crusade, where loyalty is favored over critical thinking, can help explain why people involved in the administration’s efforts were reluctant to express their anxieties and doubts. As the Washington Post journalists write, “On Sept. 5, White House officials visited CMS for a final demonstration of Some staff members worried that it would fail right in front of the president’s aides. A few secretly rooted for it to fail so that perhaps the White House would wait to open the exchange until it was ready.” In other words, they withheld their doubts, secretly rooting for failure as they only way in which their doubts could then be justified.”


    • Hirschhorn does an excellent job cataloging a lot of the factors that contributed to the fiasco. One thing he misses, however, is the effect government purchasing rules had. This makes the comment “…and they didn’t have anyone who had run a start-up, or even run a business” all the more poignant – someone who had run a business would have fled in disgust when they saw the restrictions they had to work under. This is why projects with bipartisan support still have huge cost overruns and failures. This is why the same suspects show up at the scene of each crime – the key to getting those contracts is being able to comply with the rules, being able to deliver doesn’t play into the equation.


  7. You’re kind of missing the point of Uncle Bob’s last three paragraphs. He’s not advocating a government regulated software industry. He’s warning against one.

    You’d be naive to think that people in Washington aren’t chomping at the bit to pile on the regulations anywhere they can. Don’t forget the law of the instrument:

    “If all you have is a hammer, everything looks like a nail.”

    Regulation is congress’ golden hammer and we’re looking like a bright, shiny nail just ripe for pounding. Don’t believe me? Just go ask the health insurance industry.


    • The last paragraph of his post has changed since this post went up. The original one was:

      Maybe that thought hasn’t occurred to them yet. Maybe. But how many more debacles will it take before it does?

      I’m glad he decided to clarify that, because as originally written it appeared he was advocating it.

      Regardless, the criticism of where he placed the blame still stands.


    • Absolutely! I really like the line about “Local decisions guided by global principles”. You need leadership to coordinate the work of multiple teams, but those dealing with higher granularity need to trust the teams to make the right decisions for their level of detail. Each needs to stick to making the decisions they have the information to make.


  8. Pingback: Professional Software Development – Can We Mandate What We Can’t Define? | Form Follows Function

  9. Pingback: Regulating Software Development | Form Follows Function

  10. Of course Uncle Bob suggests to establish the regulations – he is hoping to strike a good deal to consult those regulations to the government.


Leave a Reply

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

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

Facebook photo

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

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.