Do you know what you want, and who you want to be? It seems like developers quite often do not actually know this, or if they do, they do not take any steps to lead them down the road they want to walk.
Where do you want to be in your career in 5 years? Do you like that question? I know I don’t. I barely know what I want to have for lunch today, how can I plan out something as important as my job 5 years into the future? I think we tend to ignore this question just because of the traditional career path that many developers take are forced into. As soon as you get really good at development, and have been with the company long enough to be a really effective developer, you get shuffled into a management role, where you may be promised the ability to still code for the majority of your time, but you know that’s just a bald-faced lie. You don’t want to move into management, and so the 5 year plan turns into a question of how you can perform well enough still get the yearly raises and bonuses, but fly low enough under the radar to not be considered for the management “promotion”.
Another approach many take to this problem is to make a 5 year plan of just hopping companies. They start at one company, climb up into some kind of lead developer role, see they are as high as they can go while still keeping hands on keyboard, and so they jump to another company, hoping to at least retain their current level of compensation.
Why does a software developer’s career path always seem to end with not actually developing software? Some developers end up doing very well in a management position, but many do not. The skills required for these roles are very different, and even different personality types. Yet we have created this path largely for ourselves, because we also tend to be arrogant, quietly thinking we are the smartest department in the company, even the smartest person in the room, and definitely smarter than that person trying to tell me what to do; they have no idea how hard software development is. So, hoping to gain the respect of the ranks of developers, companies began to promote developers into management. Now the arguments of not knowing what they do go away, and there is more trust and respect with the managers.
The downside to this is that we artificially curtail a developer’s career path. If he or she does not want to become a manager, their career trajectory is limited to climbing up 2 or 3 rungs on the corporate ladder.
I really do not know enough about other career paths that other people take to know if this is a common thing, or an anomaly localized to the software world. Do people in marketing face a similar challenge? Maybe they generally have personalities more fit to management than we do. What about engineers? Architects? Plumbers? Lawyers?
It seems like we perhaps have created a problem for ourselves, and haven’t sufficiently investigated how to solve that self-made problem.