I recently told a room full of people that a certain data structure had been updated in a recent release of Ruby on Rails to become immutable, but I was wrong. Actually, I was just using this piece of code incorrectly. Such is the power of presenting on a big screen though, that no-one corrected me, at least not out loud.

In The Expert Beginner, Erik Dietrich talks about how it is that people who have limited knowledge end up in a position of power in software groups and influence the people around them for the worse. The best people realise this and leave, and the people without options end up becoming worse because of the poor leadership they are receiving.

Dietrich begins with an illustration of being good at sports, and learning to bowl. He progressed rapidly as a beginner bowler, despite an unconventional and poor technique. At first his scores improved, but he quickly reached a plateau. After some frustration at coming to a standstill, he went to an experienced bowler to ask him how to improve. This person told him that with his technique there was no chance of improvement. He could continue to compete with the same people and win or lose by the same amount, or he could admit that what had gotten him that far was not going to take him any further, and make a drastic change.

The application to software is that an enthusiastic software developer can easily learn enough to impress non-technical people, possibly enough to put them into a position of power. Power to set the technical agenda of a product, or possibly power over other developers. Unfortunately, “enough to impress non-technical people” is not necessarily enough to do a good job of writing software.

Anyone who has written code for a reasonable amount of time knows that continuous learning is part of the job, but the expert beginner’s position of power insulates them from learning. One way in which this happens is that power makes people less likely to disagree, and over time the lack of disagreement makes them think that they know everything. Another is that power can go to the head, and lead them to believe that they are right even when people do disagree.

When I think about common software personalities, quite a few people who like arguing come to mind, so there are probably professions where expert beginner status is even more dangerous. However, Dietrich observes that once the good people in the team realise that their ideas are getting nowhere, they tend to just quietly quit. What is left are the people with no option but to follow poor instruction.

I have one tiny disagreement with his assessment: I’m a bit uneasy at the thought that the people who are most likely to job hop are the best, and that those who want stability are not as good. Some people need stability (kids or perhaps an unwell loved one to care for) and are stuck in one place, more at the mercy of a situation like this than other (maybe single) people with fewer commitments. That has little to do with their skill or not. Needing to hold down a single job rather than move around does leave at the mercy of poor management though.

It’s a short book (59 pages), but Dietrich manages to cover the phenomenon in great detail: the reasons why beginners become Expert Beginners; the kind of behaviour and language they use to cement power; the effects they have on the people around them; and the ways in which they finally leave or lose their positions: failed bluff of the “Master Beginner”, lost credibility of “Xenophobe”, or the “Company Man”, who may (successfully or unsuccessfully) “retire” to management.

If you’re interested in reading more before jumping into the book, Dietrich blogs a whole lot at daedtech.com and you can also follow his Expert Beginner twitter profile for gems such as:

“I’m sick of the hysteria about global variables. We’ve used them for years and as long as you don’t touch the code much, everything’s fine.”

As for my presentation mistake, the book hits a bit close to home when I consider this and all the other times I’ve been tempted to believe I’m right in spite of all evidence to the contrary. I’m grateful for my colleagues who have told me when I’m wrong at other times. It’s also much easier to stay grounded when there are people nearby who can code circles around you.

You can find The Expert Beginner on Amazon.