Apologies if I’m stating the bleeding obvious yet again but my previous article, Developers: you are not the sum of your technical skills, raised a bit of comment on reddit. Not a huge amount of comment since the commentary that programmers cannot be insular is fairly obvious but one point that was raised a few times was the section that dealt with being in charge of a team.
“I really, really hate that this is taken as a given. The idea that every successful, productive programmer will eventually lead a team is just… Frustrating.”
“As to being “put in charge of a team”, leaders tend to emerge whether you christen them with a title or not.”
Now there are two points here. Firstly, I completely agree that much of the industry has a mildly insane view of the career track of a developer and secondly there is a massive difference between leadership and management and should encourage qualities of the former from everyone, not just those put in charge of a team.
Almost more than any other job, developers seem to suffer from being promoted away from what they are good at. As a developer starting out, you know that you will progress from up to a senior developer but then what? Neither of the two most common next steps, Architect with their box and line drawings or Team Leads with objectives, appraisals and other management detritus are direct extensions to being a developer. Don’t get me wrong, both of these roles are incredibly important but neither are suitable for developers who want to stay on the coal face. Too many developers feel that they have to move into the Architect or Team Lead positions to move up the ladder, both in career and financial terms. Where’s the technical track for those who want to remain as individual contributors? I think that this is one of the reasons why management and leadership are conflated since we so often see our leaders promoted into management roles. It makes no sense from a corporate perspective either, businesses are effectively crippling themselves by turning productive developers into average managers at an increased cost.
It should be blindingly obvious that leadership is very different from management but we see it confused all the time. On the one hand, every manager should be a good leader but leadership is in no way restricted to managers. I mean it’s not like it’s some magic pixie dust that’s given to every junior manager. Leadership is a very complex topic and I don’t feel comfortable pretending to be an authority on the in’s and out’s of leadership but when you boil it down it’s just the ability to get people to work towards a common goal and to do so willingly. Anybody with any level of seniority should have a measure of leadership otherwise they aren’t a senior developer – they are just someone that developed for a few years. Anyone can be a leader.
So there are two things that we should acknowledge more often. Firstly, the industry needs to make roles like Principal Developer and Technical Fellow more widespread and secondly we should acknowledge the difference between management and leadership and spend more time encouraging the qualities in the latter in all our staff.
Update – there is a very interesting post here by Laura Thomson about Engineering Management that covers some of the details of management in a tech world