September 8, 2010

...Learn TDD with Codemanship

Is It Wise To Turn Your Best Programmers Into Managers?

More ranting and frothing at the mouth from me, I'm afraid.

Well, maybe a bit more positive this time.

As you may have noticed, I'm one of a small, but growing, crowd who believe that People Who Make Software Happen (you may know them as "programmers") should have the option to progress their careers without leaving the code face.

There are a couple of very good reasons for this:

1. If they love to do it (and that's usually what distinguishes the average from the best programmers), then wrenching them away from doing what they love can take a huge toll on their motivation and morale. I'm, sure we've all worked with development managers who just can't help sticking their noses into the code. It's not because they're interfering busy-bodies (well, not usually). It's because, really, deep down, they'd like to be writing the code themselves. They're probably writing it in their heads as we discuss it - like a retired chess champion shouting at the TV because they would have played a different move. It's actually a bit cruel to take that away from them. Admiral Kirk needs his starship.

2. If they're good at it, then surely better to let them continue? Especially if less experienced programmers would benefit from their considerable experience. The lack of older faces on software teams is a problem, in my experience. We may be up on all the latest buzzwords like "test-driven behaviour" and "domain-oriented backlogs", but these old hands can still teach us a thing or two about delivering working software. Indeed, they did. It's worth remembering in this shiny nuclear-powered Agile era that Tom Gilb wrote Principles of Software Engineering Management over 900 years ago. Or thereabouts. What's new is us young upstarts hearing about it for the first time and thinking we've discovered something new. And I can't help feeling that's partly because we're not exposed to folk who've been around long enough to remember. Teams burn a lot of time relearning the same lessons people were learning decades ago.

I also feel that, even though they may still be at the code face, it's purely prejudice that suggests that they therefore can't be involved in strategic or executive decision-making. It's perfectly possible for someone who still performs surgery to play a decisive role in how a hospital is run. Or for someone who still represents clients in court to be a big cheese in a law practice.

So why couldn't a Person Who Still Makes Software Happen sit on the board of a company and have an equal say in how it's run? Because they're not qualified? Is the Director of HR better qualified? Or the VP of Marketing?

Other, more mature professions have demonstrated that it's quite possible - even desirable - to encourage the best do-ers to carry on doing and reward them for getting better at doing it. They encourage the best do-ers to help less experienced do-ers do it better, too. And they understand that doing is the best qualification for making decisions about how it should be done.

Some enlightened companies have this. They offer unfettered career progression in the technical disciplines and highly value the knowledge, creativity and decision-making ability of their most experienced and capable do-ers.

If attitudes can change, and the prejudice that if someone wants to carry on writing software then they are not strategic thinkers and not capable of making rational business decisions can be debunked, then maybe we can look forward to a time when people who love to make Software Happen have sufficient control over how they get to Make Software Happen, and then, I suspect, better software will happen.

Posted 12 years, 4 months ago on September 8, 2010