Why is Uncle Bob So Angry?

In my organization, a handful of the teammates have begun to read (and report on) Bob Martin’s book “Clean Code”. One of these gentlemen has even gone as far as sending some of his learnings out in a daily email as a “Clean Code Tip”. Right from the start, email replies started asking one rather obvious question, “Why is Uncle Bob so angry!?” He uses phrases like, “There is hardly anything more abominable”, when discussing Selector Arguments, or “Commented-out code is an abomination”. Really Uncle Bob? Hardly anything? Abomination? You can see how this might raise the ire of an unsuspecting software developer, and human for that matter, who may stumble into this “Tip”. Well, I defended Uncle Bob and responded with the following theory. I wonder if I got close? …

Rather than angry, I think he seems Dogmatic…and by his own admission, he is.

I think his purpose is pretty clear, but moreover, he knows what DOESNT work with the software development community. Namely, an absence of strongly held principles. I think there is such weak agreement and leadership in our chosen field that anyone who proposes consistency will be looked at as angry.

It has always struck me that the examples we talk about seem so nuanced and granular. It’s easy to dismiss the example as “nit-picking”. I don’t think we should be so quick to dismiss.

So why do these examples seem so easy nit-picky? I think it’s because that’s the nature of writing code. Some things can stand the developers use of “creative license”. After all, we are creating something from NOTHING. It ALL comes from our mind. Therefore, it is an interpretation. It is indeed art.

That said, we have to force ourselves to be mindful of HOW it is done (especially in a business context). To allow our designs and implementations to emerge requires some level of consistency that ultimately makes the work easier to bend and shape. The less disciplined you are, the harder it is to react to incorrect interpretations (which happen by the hour).

If you like sports analogies, its similar to my basketball coaches when I was young telling me to keep my elbow IN when I shoot free throws. They didn’t “suggest it”. They would smack my elbow as they walked by if I wasn’t doing it! Why? Because they knew the rest of the shots I would take on the floor are affected by backspin, arch, consistency, and a good, high release. If I did it inconsistently at the free throw line, it changes my ability to “create” shots on the floor. It changes my ability to react to a fast paced environment like a basketball game.

So were my coaches being nit-picky? Or did they help teach the discipline that would allow me to create more in the long run?

14 thoughts on “Why is Uncle Bob So Angry?

  1. Perhaps the “why is he so angry” comments were directed at his word choice and not necessarily the thrust of his arguments?
    Though UB is dead on with most of his astute analysis of what ails software development, he might do well to work on his bedside manner (see your earlier blog post along these lines).
    Do they have finishing school for technical evangelists?

  2. Pingback: unclebobmartin
  3. Pingback: Jason Govig
  4. Same deal as a musician. You practice scales, arpeggios, use a metronome. None of it sounds much like music. But it’s step 1 – learning to make your fingers do what you want, on command. Step 2 is the fun part – being able to play what you hear in your head, and having your fingers capable of doing that.

  5. Pingback: JanVanRyswyck
  6. @JD. What do you mean arguments? He has no arguments. He’s just making assertions using anger to underline how strongly he asserts them. The analogy is apt. A brutish coach getting off on demonstrating his dominance has a lot in common with Bob.

  7. Pingback: Tomasz Wrobel
  8. Pingback: Remon Sinnema
  9. Pingback: Andreas Wenk
  10. Pingback: Björn Rochel
  11. Pingback: Jason Coyle
  12. Pingback: Clean Uncle Bob
  13. Pingback: Corneil du Plessis

Leave a Reply

Your email address will not be published.

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