The switch from developer to engineering manager isn’t easy. Engineering managers, while still relying on their technical skills, need to learn how to deal with very different responsibilities and challenges. Here are some of the issues I faced as a new manager and how to best deal with them.
When I started my transition five years ago, it was challenging. In my career as a developer, I had a few good tech leads, but I’ve never had an experienced Engineering Manager who I could learn from.
With help from books and videos about management and supportive colleagues, I learned how to be a good leader. Still, it was difficult. I faced several issues, and in particular, I struggled with:
- Spending less time on coding and more time on management
- Organising my schedule and managing my energy
- Navigating different relationships with team members, peers, and other managers
These problems are by no means unique: Every developer-turned-manager I know struggled with them. Here’s my advice on how to overcome these challenges.
No more coding
The first couple of months in a new role might be overwhelming. When I became an engineering manager, I didn’t really know what I should be doing. I had so many new responsibilities and couldn’t manage my priorities well. When in doubt, I often resorted to the thing that I did best—coding. I kept working on big features, reviewing code, and doing a lot of the stuff I did as a developer. I felt productive as I was doing something I was good at. However, all the time I spent coding was time I didn’t spend helping my team to grow.
New managers often struggle with this problem. When in doubt, they fall back on what they’re good at, ignoring their new, more important responsibilities.
My advice is to completely stop coding for a few months: take the first three to six months in your new role to learn and forget about writing code for a while.
You don’t need to stop coding forever—just until you feel comfortable in your new role. Take this time to understand the scope of your work, set up regular meetings with your team, and figure out your priorities for the next couple of months.
Once you feel you’ve got it all under control and still have some spare time, you can pick up a small task every once in a while. For example, I occasionally fix an easy bug or add a feature that makes my life easier but is not important enough for developers to pick it up.
As a rule, I never pick up large or time-sensitive tasks as it never ends well. With my schedule and responsibilities, I need to be realistic about how much time I can spend coding. If I take a task I can’t finish on time, I’ll put unnecessary pressure on my team.
As a manager, there are tasks only you can do, and writing code is not one of them. Anytime you want to open your IDE and start coding, ask yourself whether this is what your team needs most from you at the moment. From my experience, the answer is almost always “no”.
Maker time vs manager time
Managers often have days sliced into small pieces: a meeting, a break, a meeting, a break, a meeting. Then, after the whole day, you often feel like all you’ve done is sit through meetings, and you can’t see any tangible outcome.
You’ve probably heard of the two types of work: manager work and maker work. The first type requires communication and working with others, while the second requires a lot of focus and uninterrupted time. Developers ideally should spend the majority of their time making things, but for managers, both types are equally important.
Deep work requires a few hours of uninterrupted focus time, which is difficult to find, especially if you work with a lot of people. To reach the right balance, it’s crucial to find the rhythm that works for you. You can’t just scatter meetings randomly because you’ll quickly realise you have no time for deep work anymore.
There are a number of ways to organise your weekly schedule:
- You can schedule all of your meetings in the mornings or after lunch.
- You can try to squeeze all your meetings into two days of the week and focus on deep work for the other three days (though, from my experience, it doesn’t work very well)
- You can have dedicated blocks of time for deep work, mark them in your calendar and not accept meetings during this time
Whatever you start with, observe how well that works for you and adjust it over time. If every Monday you feel completely exhausted by 3pm, maybe you should take it easy and try to move some work to another day.
Of course, some parts of the schedule will be out of your control. You can’t move a weekly department meeting for managers just because you focus better in the morning, but you can ensure you put in two more meetings that same morning and then have a free afternoon. As a manager, you’ll need to be creative and find a way to balance your maker and manager time efficiently.
Besides new responsibilities, the other big change for new managers is on a social level. Leading a team means the relationships and interactions within and outside of the team might change quite a bit.
Old team, new dynamics
The first thing you might notice as a new manager is that your relationship with your team members is different—especially if you now lead the team you were once a member of.
Whether you like it or not, things have changed. You’re now managing people who, until recently, were your peers. Doing performance reviews and deciding on salary raises creates a new power dynamic in your relationships with your team members. It might feel awkward, but that’s normal, and you can acknowledge this awkwardness during your first one-on-one meetings to assure your team that you will be a self-aware manager.
This means the relationship between you and your team will change. It’s not a bug; it’s a feature: You want to be seen as a leader without bias towards or against any team member. To do this, you need to look at the group from the outside rather than from within.
You might feel like you’re not part of the group anymore, but this is necessary to avoid favouritism. When you were a developer, going on a cycling trip with one of your fellow developers would have been fine, but doing that with one of the developers you now manage could be seen as favouritism. This can erode the trust and support of your team, which is very hard to rebuild.
Think about it this way: As a manager, you’re still part of the team, but you’re not a player on the court anymore; you’re the coach now.
You work with the team, you celebrate with the team, but you need to be able to evaluate the team and introduce changes.
Managers around you
In my first role as a manager, I was the only engineering manager in the company. It was difficult because there were few people around me I could reach out to about the challenges I had. But management doesn’t have to be lonely. There are still people you can talk to, share your concerns and questions, and even collaborate with.
The first group is other managers in the company.
If you have other engineering managers around you, you should start building relationships with them. If a few of you report to the same manager, that’s your new team!
If your company doesn’t have other engineering managers, or if you’re looking for an outside perspective, you can join some online communities for engineering managers. I share a few of these places in a list of resources for managers I curate. These communities gather managers from all over the world and are especially valuable when you deal with problems that nobody in your company had to work on before.
Having a group of managers you can reach out to can be a huge benefit. You can discuss your challenges and ask them how they solved similar situations in the past. You can also learn from each other and provide support. It’s not that different from discussing a coding challenge with another developer—you’re just solving different kinds of problems.
Lastly, as a manager, you might want to find a mentor to help you navigate the new challenges. You can look for a mentor in your company, city, or even online. In the list I shared above, you’ll find some places where you can find mentors who have experience with challenges similar to yours. I also run a free 1-1 session once a week where I help new managers.
Find community outside of work
My last piece of advice is maybe the least intuitive: Find community outside of work.
As a manager, you will deal with problems that you have to figure out on your own. You will deal with stressful situations that you will struggle to stop thinking about.
Having a community that is not related to work will help you separate your professional and personal life, and having something to do that takes your mind away from work provides a lot of value for your health and sanity.
Whether you join an improv group, play basketball, or do some work for your local community, you will find it easier to stop thinking about work. This won’t solve your challenges, but it will help you to detach from them and get a fresh perspective.
Is being a manager really for you?
The first few months in your new position will be challenging. Engineering management is different from software development. During your transition, you need to learn new skills and start navigating multiple new responsibilities. What’s more, you can’t rely too much on the skills you already have. It’s not an easy task, and I doubted myself a lot when I first became a manager.
The good news is that it gets easier. Like any other skill, management and leadership require practice. After a while, you will start grasping it: You learn how to manage your schedule and energy, you understand that coding is not on the top of the list of your priorities, and finally, you figure out how to build healthy relationships with your team and your peers.
It won’t happen overnight, but eventually, you will become proficient in your new role. And if you build a good environment and support around you, your transition from developer to manager will be smoother, faster, and less stressful.
- From Developer to Manager: Lessons Learned about Leadership
- Reflections of a Former Developer Trying Hard Not to Be Called a Manager
- What a Senior Engineering Manager Focused on to Lead his Brand New Team Remotely
- How a VP of Engineering Decided to Become a Software Developer Again
Gregory started his career as a backend developer, and for more than ten years, he’s been helping companies build high-quality web applications. Currently, he works as a senior engineering manager at Booking.com, where he manages platform teams. In his spare time, Gregory helps people to become better developers and managers – he creates YouTube videos and writes articles about having a successful career in the tech industry.