You are a great software engineer with years of experience under your belt. You’ve seen too many technologies come and go to easily fall for the next hyped framework. You choose the tools which get the job done and have a good chance to keep working for the years to come.
Despite growing experience, your personal growth slowed to a crawl. You’re wondering what the next step should be as many of your peers have chosen to become an engineering manager.
Before you set off down this road, be aware of the implications of such a step: becoming an engineering manager is not a promotion, but a change of careers!
Why becoming an engineering manager is a change of careers
There are three things you have to completely change when switching from engineer to manager. You need to:
- stop negativity
- stop writing production code alone
- stop saying “No” without providing options
Why you need to stop negativity and focus on positive change instead
“Negativity destroys performance in the short term and precludes success and happiness in the long term”, says Mark Divine, a former Navy SEALS commander. This is why it’s so powerful for organizations to focus on making their people happy at work. Making people feel good can help free the workplace from negativity.
Negativity in engineers leads to unnecessary rewrites. I’ve seen it way too often: new engineers look at the existing code and gasp as WTF lights up in their eyes. The first reaction is always: “Oh, this code is so bad – it has to be thrown away and rewritten!”
While almost all code older than three months looks really bad, don’t forget that it’s running a (hopefully) successful business! I’ve seldom seen an engineer appreciate that and approach “legacy” code with a positive attitude to improve it.
As an engineering manager you need to spot negativity and stop it immediately if you experience it. A lot of engineers are proud to be sarcastic and enjoy devastatingly dark humor.
While funny at first, the negativity below the surface slowly erodes a positive attitude towards your team’s tasks and jeopardizes long term success. How often have you seen engineers with a negative attitude create awesome software?
Why you need to stop coding and focus on leveraging others instead
When you write production code alone, it has a 1:1 impact on your business. As an engineering manager you need to increase your impact to 1:n by leveraging others. Focus on how you can make others better, increasing their individual impacts on the business.
The sum of all those improvements is the leverage you have as an engineering manager. Only if the sum of those improvements is greater than your individual 1:1 impact, are you a worthy manager. Spending too much time writing production code on your own not only decreases your business impact, but also the time you’ll spend helping your teams!
Of course, this doesn’t mean stop coding altogether. You need to stay in touch with the daily challenges of your team and the advances of technology to be able to make good decisions in the long run.
But writing production code alone is dangerous. You’ll hardly have enough time to write clean, maintainable code between all the meetings you’re attending. If you write it over a long weekend, you’ll need to train your team mates to maintain and evolve it over time.
Becoming a bottleneck for critical parts of your company’s technical infrastructure means you’ve failed to manage your engineers.
Why you need to stop saying “No” and provide options instead
It’s easy to say, “No, this is not possible; or it’s too complex” as an engineer. While they can get away with it, as an engineering manager, this is no longer an acceptable answer.
Instead of just saying “No”, provide options how to reach the business goals despite the fact that the currently discussed option might not be possible or too difficult. What alternatives are there? Could you reduce scope? Is there an approach that moves in the desired direction with smaller steps? Could you buy a solution?
While the answer ultimately might be that the business idea is not feasible, as an engineering manager you need to make sure that all possible options have been evaluated to make an informed business decision.
The same is true for saying “Yes”.
You need to protect your teams from unreasonable requirements and feature overload. By saying “Yes” too early and too often, you’ll overload your team and steer it away from success. They’ll have to deal with seemingly easy but utterly complex tasks. A lot of engineering challenges look simple from the outside but become ugly if you look more closely.
As an engineering manager you must protect your teams from these unnatural expectations.
If you consider changing careers and become an engineering manager, be aware of these three fundamental changes. If you’re ready to take this step: Congratulations! You’re on your way to helping more and more developers be even more successful while helping your business thrive with your leadership!