When you start as a developer you are most likely to have chosen the role because you are interested in coding. You like to fiddle with things, play around with code, and see what it does. Along that way, you might decide you really like it and that you want to do it for a living. But after a few years you realise it’s not just about the coding. You start to see a bigger picture. You lift your head out of code and see that small changes in code can have very big impact on the whole project. It’s not just about clean code and the DRY principle, it’s about customer satisfaction and selling your ideas to product owners, explaining why the changes they want to implement will not solve the problem they want to address.
These things are not always fun. Some might say that they’re never fun. But they have to be done and, generally speaking, managers are the people who do these things. The question is this: Is becoming a manager and increasing your interaction with customers and product owners the next step, or can you remain a developer, hone your skills, and improve the product from the bottom up? This article explains what it takes to stay in your position without feeling like you’ve got stuck and still enjoy your role.
Why senior developers end up in management positions in the first place
With a standard career path, you start at the bottom of the corporate ladder and climb up. Up is where you’ll find more money, more power, and more prestige. At least that’s what it looks like from the outside. But are your skills good enough to make it to the top? Or is it even the right thing for you? The Peter Principle by Laurence J. Peter and Raymond Hull describes the relationship between the promotions and skill level.
“The Peter Principle […] observes that people in a hierarchy tend to rise to their ‘level of incompetence’”—Wikipedia
In other words, you get promoted based on your skills until you reach the point where you are not good enough at your job to receive another promotion—your “level of incompetence.” This principle makes sense. But what doesn’t make sense is why you would change your position for another that is not something you are good at/interested in. Why not stick to your guns and continue doing what you love and are good at? Most answers would probably involve money or the feeling that you’re not progressing. Yes, you can get better pay as a project manager or a technical lead, but it’s not usually that much more, especially if you are good at your job. And money is not the best motivation in the long term anyway, as we mention later.
Feeling stuck might just be the result of social pressure and expectations. If you care about what you do, then you shouldn’t care about other people and what they think about your job. This is easier to say than do, of course, but think about this:
“Research from experiences company Boundless has revealed that plumbers are the happiest people in the UK”—Simply Business
Plumbing is not exactly the job you would associate with the idea of success, and it doesn’t offer any hierarchical progression, but there might be something else that makes plumbers happy. Maybe it’s the satisfaction of doing a good job and that feeling you get when you help others in need. Developers don’t get this feeling very often because they don’t get to talk to the people who use the product directly.
What is management about and how to assess if it’s for you
Generally speaking, management is about communication between stakeholders and the development team. It’s about providing all the tools and help necessary for the dev team to do their job efficiently, and to shield the team from the questions from and demands of stakeholders or users.
This means that managers are usually more stressed because they carry the responsibility for project delivery. And when something goes wrong, they are the first ones to be blamed. As a manager, you have to listen to other people’s problems and deal with them: Members of a team may have a personal issues with one another, or you may have to make sure that everyone has all the right tools and software for the job, which leads to managing budgets and navigating company politics.
It might not be visible at first, but you will probably earn less money than before. You might have a bigger salary, but you will spend much more time working, which leads to less free time out of the office. Talking about the office, managers can forget about working remotely.
If this is something that you think you would rather do than solving specific problems in code or designing new features, then management is probably for you. If you’re still not sure, Pluralsight’s course Developer to Manager might be able to help you find out more about yourself in this context.
You’re a developer for life—what next?
So you’ve decided that management is not for you, well done. Now it’s time to tell you that you can still progress within your career without going on to management level. Below, we’ve summarized the most common options for this.
Become a mentor
There’s a point in your career when you become one of the most experienced people on the team. The others will tend to look up to you and come to you with their queries. You can accept this role and use it to your advantage, or you can pretend that it’s not happening and change job or wait for others to take on the mantle of mentor. The best thing in the long term for you, personally and professionally, is to accept it.
There are books out there that will advise you how to teach and guide your less-experienced colleagues on their path of craftsmanship, such as The Coaching Habit: Say Less, Ask More & Change the Way You Lead Forever by Michael Bungay Stanier.
Focus on your niche
There are so many new technologies available that it’s impossible to be good at all of them. You should pick up only a few of these and try to learn them the best you can. Look at technologies such as databases, web development, or operating systems. Learn the core of these technologies and build upon that knowledge. Learn continually and stick to your core technology. There will be programming languages that come and go, but the core of the technology will stay.
Be as valuable as possible to your company
No matter what technology you use or what organization you work for, one thing will be the same for everyone: The business that your company is in is paying your cheques. Find out what the most valuable thing you can do for your company is. It could be helping with the hiring of new developers, or perhaps it’s spreading the word about your company and making it a place where people will want to stay. Or maybe it’s analyzing the data from the product and suggesting ways to improve it.
Create a unique position for you that fits your skills and abilities
If you find out that there is a place for you in the company that doesn’t have a label or official title, but there’s a need for it, you’re in luck.
At the end of the day, it is just about you and your choice. Think carefully about your future and what drives you forward. You might find yourself in a position where management might be the right way for you. Just keep in mind there are more ways to achieve a long and successful career.