The other day one of the team leaders I work with mentioned about the challenges inherent to moving on to a team leading role from a more hands-on development position as he has been experiencing recently. This is something I have come across on quite a few occasions in my relatively short career in the software industry. This is something I experienced first hand a couple of years ago.
The skills required to be a talented developer and those necessary for successful team leading seem to be at the antipodes. Indeed, often software programmers lack basic social skills — remember Garry the IT admin guy you went to talk to the other day because you needed something fixed on your computer and the guy told you off without even looking at you –. After all, we spend most of our time interacting with machines, not humans*. On the other hand, these very social skills are the tools team leaders are required to master in order to be successful.
Another challenge newly appointed team leaders face is that they are forced to stop coding as much as they used to. Most developers I know went into the software industry because they enjoyed writing code so it is a bit hard to take that away.
My personal experience with this transition is that it threw me out of my comfort zone and was challenging at the beginning. However, I quickly realised that although challenging I did enjoy that aspect of my job. And because I wasn’t leading too big a team I also still had time to keep writing code.
—
* Kent Beck in “Implementation Patterns” argues that developers should write code for other developers to read, not for compilers. Michael Lopp in “Managing Humans” also has some very interesting things to say about it.