Why the career path for developers is ridiculous
Tags: webdev, programming, career
Published: 2024-01-13 01:52:54

A developer advancing their career goes a bit like this, you start as a junior, work your way up to medior and then senior, and then or perhaps during that last role, you can become a team lead and then a dev manager. After that you can become a manager manager, leading the managers and going up through ranks to become something like head of product or head of development, or going further up to C level. I think this is ridiculous. And I’ll tell you why.

##Current pathway to manager
As a developer you work hard to solve complex problems in logic and you invest time and energy to learn a lot of different tools, languages, frameworks and all their quirks and gotchas. You spend years to perfect your craft, learn the codebase and improving the code quality. If you work for a company that values your skills, you will get a budget and time for training and improving your skills as well. Which is important because technologies are always changing, evolving and being updated and upgraded. Some years later you will be fluent in computer language and get rewarded for your hard work with a new title and promotion of dev manager.

Suddenly your experience and knowledge on how to make machines do what you want needs to be transferred to making people do what the company wants. And that’s where it goes wrong. Firstly all your up to date knowledge of the codebase, will wither really fast by no longer working in it. Your language knowledge will soon be outdated because you are no longer keeping up with it for work, and soon all those years invested to get to the role of senior developer will be for nothing. Secondly, all that time spend improving your technical skills, thinking logically, practicing math and order, are the opposite of managing people. People are not logical creatures, you need a certain likeability, leadership skills and soft skills. You spend years learning these skills, practicing them and training them, suddenly you need to switch around your whole skillset.

##Why it's ridiculous
Some people are good at this, but not everyone. An excellent developer who can spot a bug or performance issue in a pull request before it gets merged, and who is one of the most productive feature builders in the team might not do so well when they need to organize, prepare and host meetings. They might not do well in presentations or representing the company at events. They might not know which candidate to hire because they try to logically find the best coder, and perhaps not the best fit for the team. All these scenarios need a very different skillset than what it takes to be a good developer.

Vice versa can also be true, you might be an average developer, motivated and dedicated but not the fastest coder or able to grasp the more complicated technical problems. You do however have great people skills, you enjoy helping the team with more than features and pull requests, you help them stay organized and can spot potential problems before they actually are a problem. 

In the current career path, this developer might have the makings of a good manager, but they will take a lot longer to get to the senior role because of their technical abilities. And the developer who you actually want to keep developing and building a beautiful product or service, might get promoted just because that’s the career path she’s on.

##So then what?
So what’s next? How do we get out of this? Firstly we need to split up the 1 path we have. I think there needs to be at least one path if not more to technical expertise and also one to developer expertise, more towards the human side of it. Then I think we need to have developers taste what different roles are like so that they can see for themselves what they do and don’t like about the different career paths. I think we need managers to not just focus on technical skills but look at all that someone brings to the team, give opportunities to try out different hats with different skills and have conversations about possible paths to take. In practice this could look like having a developer tag along with a manager from another team for a day, see what they daily schedule is like. Or schedule some time with an architect to sit and have an in-depth conversation about what their role does and the responsibilities they have. Or assisting your team manager for a week with their workload. This is by no means a solid plan, but just some ideas of what I feel would have helped me in the past at different companies. I would love to hear more ideas if you have any or if you have experience with a company that has this well taken care off.

To summarize, the career path for developers has them focus and put years of training and learning into a highly technical and logical skillset, then when we promote them to managers we expect them to somehow along the way have learned the opposite, soft skills and people skills. While simultaneously wasting the years of experience and tech knowledge they’ve build up. This career path makes no sense, we need a new career path. Or at least stepping stones, where you can try out different paths and get a feel for where you want to go. Orrr am I the only one who feels this way?