Not all senior developers have what it needs to become managers. In fact, many of them don’t.
Many programmers choose this profession because they enjoy working as individual contributors to a larger project rather than managers. Even those who enjoy mentoring others may not want to become developer managers.
Nevertheless, some of these top software developers end up by accepting leadership roles, even though they don’t really want that. Sometimes, they fear they aren’t going to improve their skills any longer if they don’t accept the management role. Some other times, IT leaders force such promotions with the intention of hiring cheaper employees with similar skills.
The reason matters less. What matters is that these leaders are unhappy and their product development teams are less productive.
Look for Software roles on Redline.
The Big Management Mistake
I’m trained to be a programmer and I’m also a mentor to Yeti’s beginner developers. In this role, I’ve seen lots of programmers feeling sorry for accepting management positions. They loves the fact of getting a “promotion” but they never felt that filling in a management position was the best thing to do to follow their passion.
The career path these people embraced is similar to the career path of many other software developers. In the beginning, they took the role of project development leads. Although this seems to be a senior developer position, these people usually find themselves checking on their team members and on the evolution of the different projects. Rather than improving their coding skills, they inevitably end up doing mainly administrative work such as filling in charts and spreadsheets to keep their superiors updated with their progress.
More often than not, they find themselves in the situation of managing others, without finding time to work on their own projects. The less they can work, the lower their sense of value. The result is a difficulty of balancing their own challenges with the team work. Many of them give up these leadership roles to return to their individual contributor jobs. Others just quit and start doing something else in life, while a few of them learn to see the success of their team as being their own achievement as well.
Developers who don’t dream about taking on leadership roles don’t need to worry about such issues. Even though some of them might aspire to take such roles, the truth is that management is not for all of these technical team members. Management roles are best to be fulfilled by IT leaders such as myself, individuals who are cut to nurture talents and to accompany young professionals along their career path.
Software Developer Career Paths
What can a developer do then to move up on the hierarchical scale in this industry? In my view, here are the main directions their careers might take:
Software Architect. This is a role that best suits developers that are technically focused. While the job title may differ from company to company, it always involves making essential software architecture decisions for the team.
Many software architects mentor young developers, without having direct reports, though. They take problem solving very seriously, many of them managing to acquire decades of experience across different stacks. This makes them some of the most sought-after professionals in the IT industry.
To support software developers to embrace this career, encourage them to stay up to date with all modern technologies. Even specialists should have at least a broad understanding of software development stack outside of their specialty. Similarly, generalists should have some in-depth knowledge of at least one of the most popular languages.
Lead Developer. Also known as developer manager, the lead developer role suits best individuals with very good time management and interpersonal skills. Lead developers make the connection between nontechnical and technical members of a team. They need excellent communication skills, as they have to delegate work to some of their peers, as well as to update company leaders on the progress of their projects.
These developers can work very well on small, self-managed projects. If they can deliver the project within the agreed deadlines, that’s a sign they are able to hold themselves accountable for deadlines. The next step is to assign them projects that involve delegating some of the work to other team members. Are they able to communicate their intentions to their peers? How good are they at evaluating the performance of these other team members?
In some companies, this role is purely a management one. In other companies, a lead developer may have to also code apart from managing a team. Either way, those seeking to step on this career path have to understand that managing people and coding are two very different things that require two different sets of skills.
Senior Technical Project Manager. This role requires developers with excellent resource planning and budgeting abilities. These professionals work closely with teams and also with stakeholders, with the purpose of keeping the project on track and the expenses within the budget.
Helping your direct reports discover what kind of career would best suit them is a very difficult, yet extremely rewarding part of management. If you do your part of the job well, they will choose a career to be happy with for many years to come. If you fail, they will be miserable and inefficient.