Why do so many software companies treat management as if it’s something that people are just born knowing how to do? It seems that the standard career path is – programmer, senior programmer, team leader, project manager, and then senior manager. This is just ludicrous. What is it about software that makes us think that the only people who can manage a software team are people who, given enough time, could sit down and write all the software themselves?
I believe that I learnt how to manage by working with musicians and not because of anything I was taught whilst working as a programmer. I did learn that programmers think managers are stupid – which is interesting as nearly all the managers I know in the software industry started their career as programmers. And yes, it is possible for someone who has been a programmer to become a great manager but I believe that this is not the norm.
The skills required for being a manager are not the same as those required for being a programmer. This isn’t a shocking thing and seems almost self-evident. When have you ever seen a university course in programming that had a management module attached to it? The top management skill is probably communication and I don’t mean being able to write a tool that allows you to produce automated emails so you don’t have to respond to idiots. There are so many jokes around the fact that programmers are anti-social and find it easier to communicate via electronic means that it seems possible that programmers are maybe not that good at communication. To be an effective manager you need to be able to understand people and not machines.
I’ve put together a short list of the skills that first come to mind when I think of managers and programmers. As you can see from my lists I can’t see why anyone would think that their senior programmer is the obvious choice for their next manager.
- Time Management
- Leadership Ability
- Common Sense
- Attention to Detail
- Problem Solving
- Abstract Thinking
- Logical Thinking