- Why the career development matrix in many companies is faulty and prevents employees from following a purely technical career path?
How dangerous is it for a technical person to be promoted to a leadership position. What are the benefits and the drawbacks?
How to avoid or deal with such traps from a purely technical perspective.
This article is a reflection on our technical career path and the way we gradually evolve, describing some mistakes we make when we move up in our career from a developer position to a technical or team leader role, and then further to a project manager position. In reality, we are doing nothing more than gradually moving away from pure technical activities (e.g. coding, programming, deep technical study) and replacing them with meetings, presentations, papers to fill in, and people to manage. For some of us, this is probably a comfortable approach (we feel better in a team leader's or project manager's shoes), but in most cases, it contributes to a general degradation of the technical skills we acquired with difficulty and prevents us from becoming more and more proficient from a technical standpoint. Let’s dig into this topic and try to identify why this is happening and how can we correct this pattern.
Starting from the very beginning, during our childhood, we go to school, we study and learn things which are supposed to help us become educated and have basic knowledge. Then we attend universities where we become specialized in certain fields (e.g. computer science, medicine, economics, construction, etc.) which, at least in theory, help us to prepare for getting better jobs. We follow this pattern because we do not have any other alternative, our society is built on this mechanism, whether it is efficient or not. In the media, there are stories about a few people who did not even graduate and yet have become rich and famous (e.g. Larry Ellison, Amancio Ortega), leading to the idea that schools are inefficient since they do not prepare their students for real life. Personally, I am not in favor of these assumptions.
Then we graduate and we get our first job as a junior developer. We are struggling to apply things we learned in school, and we suddenly realize it is not enough since real jobs need deeper knowledge and a more solid set of skills. At that point, we start learning more and more and eagerly accept technical challenges, because we are young and very motivated to do everything. After a few years as junior developers, we get the chance to be promoted. We feel proud of ourselves, we are now autonomous and better paid. But after another few years, while trying to gather even more technical skills, to have a good reputation in our teams, to be the guys who people usually ask for technical advice, we get the next career gift: a new promotion - but this time to a team leader position.
We happily accept it! Now we are driving our own teams but implicitly spending more time in meetings, sending emails, crafting presentations, filling in documents, and doing less coding. If before we were supposed to code for 5-6 hours a day or even more, now we barely have time to code 3-4 or even 1-2 hours per day. Before this promotion, we invested a lot of time in boosting our technical skills, and suddenly we are moving away from them! Isn’t it ridiculous!? Why is this change happening? We are guided to become team leaders because the IT industry (in most cases) implicitly leads us towards these roles since the jobs are better paid and our ego makes us more proud of such positions.
The career paths in most of the companies rely on this leaky pattern, there is no standardized pure technical evolutionary path, beyond a certain level there is a mix of technical and non-technical which implicitly replaces and degrades the former. This career path matrix, instead of helping good technical people by promoting them to positions where they can continue to enhance their technical skills (e.g. keep coding, keep researching), gradually steals such abilities from them.
But who invented such an ambiguous evolutionary matrix? Probably this flawed structure was created in compliance with the company's business and profitability strategies, but it is also easily accepted by us. Most of the people think that coding their entire lives is not a challenging task, hence the need to jump out of these activities after several years and embrace more powerful roles in their teams.
In my opinion, this is completely false. If you like it, keep coding for the rest of your life! Being passionate will drive you to discover new technological methods, and helps you to become a successful mind in the industry.
In order to avoid these issues, we need to better understand what motivates us and what we want to move towards, from a technical standpoint. If there is a strong motivation to be a geek, a technology guy, my advice is not to switch to any leadership position which imposes non-technical skills in favor of technical ones. Keep learning new things and coding most of the time (e.g. typically a full day) and do not be tempted by such leadership roles. There might be a problem of ego here, but in the end, it should be fine since we are doing what keeps us technically motivated. Apart from this, we can address these problems inside our teams and explain to our managers the career matrix flaws, hoping they will support and correct these inconsistencies, by enhancing and maintaining a pure technical path with roles such as technical principal, technical fellow, etc.
To make an analogy, imagine what would have happened if brilliant minds like Barbara Liskov, Grace Hopper, Leslie Lamport, etc. would have stopped coding and researching after several years because of promotions to positions that had a less technical impact! Today we probably would not hear of them anymore since their contributions to the industry would have been less then they are.
Laurence J. Peter’s principle states that “the selection of a candidate for a position is based on the candidate's performance in their current role, rather than on abilities relevant to the intended role,” which is a general truth in our industry. People are promoted until they reach a certain level of inefficiency because we continue promoting people to positions where skills and abilities are not organically complementing one another, but rather competing and replacing each other, especially when transitioning from technical towards non-technical positions.
In my opinion, a more natural evolutionary path should be defined, promoting people in better ways without losing technical abilities and helping them continuously evolve from a technical standpoint.