The False Fork
Recently at Unbounce we have been talking about what it takes to move between the ranks of junior, intermediate, and senior developer 1. Some very good discussion came out of it, but one key piece was left out for my personal interest 2: where do developers go after becoming senior?
At a certain point in the career of a software developer they are told to make a choice: keep programming and developing a deeper understanding of software (The Guru), or go into management and lead software developers to the possible detriment of deep programming skills (The Manager). Over the past decade I have found myself revisiting this dilemma but have never spoken about my dislike for it. I view it now as a false dilemma but, that being said, it is a common practice to take one of two paths.
The Guru attains more knowledge of software and/or systems development, both depth as well as breadth of knowledge. They almost become a generalist (as one does) because many technologies are interconnected. Take any programming language, for example. Once you gain more knowledge about it, you learn how the language interacts with the underlying system (threads, processes, memory and cpu management). If you write anything that works with the file system or a database, you will become more knowledgeable about those connected systems in order to improve performance and discover edge cases. The career path of a guru is junior, intermediate, senior, and (maybe) technical lead. Unless each step is subdivided into numbers (e.g. Senior III) then the career path stops there. I do not include CTO in this career path because a CTO is more of a leader/manager than a daily hands-on coder.
The Manager decides to put away the keyboard and focus more on ensuring that the software developers are able to do their jobs properly. A manager also ensures that the team is properly staffed, trained, and mentally prepared for any forthcoming task. While the keyboard may be put away, that does not mean it is gone. However, the lack of constant attention to software development means that some skills will dull while others are sharpened. The career path of a manager goes from any software developer level, team lead, director, vice president, CxO (and so on). There is almost no maximum level for a manager.
My issue with the two choices is that it is a false dilemma. It is a common situation because HR and non-HR departments tout it as the only two choices 3. I have decided to call this the False Fork. Everyone sees it as a fork in the road of their career, each with a trade-off. Instead of a fork, I want to go straight down the middle. I like the ability to learn about leadership and management skills (which software developers often lack), as well as about how a business is run and how to work with the squishy side of business (i.e. humans). At the same time, I also like to dive deep into the guts of programming languages, databases, and systems because I am a curious person by nature. I cannot understand why anyone would stop their career growth at the stage of learning either of these paths, since they are both equally valuable transferrable skills.
More to the point, there is a precedent set in other industries for people who do not believe in the False Fork. Look at actors who become directors, basketball players who become football players. Sure, maybe some of them are not good at it, but we as a society should applaud the attempt at a different path while still maintaining the original career path.
The labels used are not important as the distinction between moving from an inexperienced to an experienced software development role. ↩
It was beyond the scope of the talk, but it often a topic not spoken about in tech circles. ↩
My guess is that it is easier to categorize and build salary bands around people this way, but I cannot be certain. ↩