Contrary to common belief, software developers are actually better prepared for some leadership roles than is often thought.
A common “myth” is that software developers don’t usually make good team leaders. It is clear that some skills needed for the two jobs often differ, eg hard analytic skills vs soft interpersonal skills.
A development background can however help in three main areas:
- Developers understand scaling, delegation and processes: As a developer you are constantly creating processes and delegating tasks, ie telling the computer what to do so you don’t have to do it yourself. You then step out of the way and leave the computer to run by itself without constantly checking it. As a manager it should similarly be your goal to setup the processes, delegate work and then step out of the way and let your team get on with it.
- Logical analytic thinking: There are plenty of management tasks that benefit from the same rigorous logical analytic thinking that developers are used to.
- Deep understanding of the developer mindset. If you were previously a developer then you can fully understand the needs, pains and frustrations of development tasks in a way that a non developer will probably never be able to do. I think Ahmad Nassri’s sums it up well in his article Becoming a technology team leader:
“A good leader understands the field of battle, while a great leader not only understands the field, but is also leading the charge!”
It would be hard to really lead a development team if you had never been a developer.
So, overall I coming around to Noah Brier’s view from his Tech Crunch article.
“ despite their reticence, engineers are actually better prepared for management than almost anyone else in the organization”
As a newly promoted development team lead this doesn’t mean you don’t need to invest time in new skills, but you can be happy that your technical background has given you a good basis as you progress into management.