Tech Bullshit Explained: Uncle Bob
If you've seen tweets about "Uncle Bob" and wondered who the hell that is
|Melissa McEwen||Jul 7, 2020||23|
An attempt to explain Uncle Bob to a lucky person who has never heard of Uncle Bob. I would never subject a real normal person to any of this.
"Wait why is he an uncle? Isn't that kind of creepy?"
Neither uncle, nor Bob, Uncle Bob's real name is Robert C. Martin. Why do people call him uncle? I do not know. It's his brand or something. It's creepy. And I've always hated it. It reminds me of Bob in Twin Peaks. Or Sideshow Bob in The Simpsons. The trope of the creepy uncle.
Either way it's his BRAND. He has a company called Uncle Bob Consulting. And Uncle Bob of course has a blog. Uncle Bob's Blog.
"So why is everyone talking about this Uncle Bob?"
Well it all goes back to the Agile Manifesto…
Oh gosh, I'm sorry I brought this up. I'm sorry to say I must now tell you about the world of software development methodologies. This deserves it's own article. But in short back in the nascent days of software, organizations weren't sure how to manage software projects. So people invented a whole bunch of weird pyramid scams for selling books, tools, and training. Oops I mean new "software development methodologies." Like one called Extreme Programming. I'm not joking.
There were so many of these cults that in 2001 seventeen white dudes decided to meet up at a ski resort to distill them into one big cult. They called it The Manifesto for Agile Software Development. Uncle Bob was one of these white dudes.
The original is worth reading. It's short, just 12 principles. This Manifesto launched a whole industry. For a couple of hundred bucks you can become a Certified Agile Coach. And then train other people in Agile.
"OK so he's some kind of Agile leader?"
Uh he was also part of another movement. It also had a Manifesto. The Software Craftsmanship Manifesto in 2009.
Do they have all these manifestos in other industries? God I hope not. I once tried to tell this story in a serious manner. It's not easy. There is so much jargon it makes my head hurt.
They had to make Software Craftsmanship because Agile became too much about project management and not about code. This made software devs sad because they hate it when things aren’t about them. Uncle Bob and others thought too much code sucked. And people weren't paying enough attention to writing code that didn't suck. They decided the solution was to LARP as medieval craftspeople. And pretend they were making beautiful woodcarvings instead of pop up windows on websites.
That same year Uncle Bob also wrote a book called Clean Code, about how not to write code that sucked.
"What code? How can code be clean?"
Code quality is a nebulous thing, but a big fear of software developers is that they might write "bad code." Uncle Bob wrote Clean Code to cleanse them of their coding sins.
Clean Code's promises are seductive and prey on software developer insecurities. It also claims to be applicable to anything a programmer does. So people think they can read Clean Code and then pick up any one of the five bazillion frameworks. Over the years some people have pointed out that the code isn't even all that good.
I don't know, because I don't bother with books that aren't about specific frameworks. Every single framework has different standards for "good" code. That's not the point here, the point is Uncle Bob is famous and Clean Code is very popular.
Which is a problem because now he's really into being racist and sexist on Twitter.
Sooooo Uncle Bob has a long and troubling history of sexist remarks at conferences and in blog posts. He got especially really mad when people pointed out the "craftsmanship" name wasn't particularly inclusive. That led to a huge schism in the Software Craftsmanship. With most organizations devoted to it renaming and dissociating from Bob Martin. The annual Software Craftsmanship conference ended in 2018, its adherents unwilling to agree on how to move forward. Oh sorry this is probably extremely boring.
So back to the bad tweets. There are lots of them. Most recently Uncle Bob decided to tweet this about the police:
The police are not the problem. The police were never the problem. Defunding the police is a terrible policy that will put hundreds, if not thousands, of lives at risk.
Let's think about the context here. The US is in the midst of widespread protests against police killings of Black people. Uncle Bob has devoted 0 posts to supporting protests or even middling reform efforts. In this context, this Tweet is pretty damn racist.
In between tweets about software and Agile, Uncle Bob rants about "cancel culture" and quotes Trump.
"Oh YIKES. Has he been ‘cancelled’?"
No, not really. Uncle Bob is still really popular. In fact some tech people love him even more for it, because well… tech has issues. Uncle Bob’s increasingly obtuse followers rush to his defense. According to them since Uncle Bob never tweeted verbatim "I'm a racist", so he's not one. They don't have a strong grasp of things like context.
For a "cancelled" man he's doing pretty well. The has 150k followers, two businesses, and his most popular book Clean is #3 in Software Design & Engineering on Amazon. So then you gotta explain Uncle Bob to like every dude new to coding who thinks he's discovered the path to being a "software craftsman."
"Oh god why"
Yep, well that's the story of Uncle Bob. Hopefully helps you understand that when I dunk on Uncle Bob on Twitter, it's not about my family. And also a little bit about the total trash fire that is tech culture.
DISCLAIMER: This is a humorous newsletter please note there are many nice people in Agile and Code Crafting who make the world of work more bearable. But as someone who has had to endure many bad Agile "sprints" and Jira setups I reserve the right to drag it.