ID 289282047 | Abandoned Teddy Bear © Altitudevs | Dreamstime.com

Many software engineers reach a point in their career where they are faced with a choice; continue cutting code or move into management. In many cases, engineers feel pressured by remuneration or peer pressure to move into management but transitioning from a software engineer role to being a successful software engineering manager presents significant challenges, none of which you’ve trained for!

Shifting from technical work to management

As an engineer, your primary focus is on coding, problem-solving, and technical implementations. As a manager, responsibilities shift from hands-on technical tasks to overseeing projects, guiding teams, and making high-level decisions. It can be difficult to let go of day-to-day coding and focus on people and project management instead of building software directly. It’s really tempting to “keep your hand in” and “just pick up the occasional story”, but this is an almost impossible tightrope to walk, often both the technical quality and your managerial tasks both suffer.

Finding the balance between staying technically competent while delegating technical tasks to the team is hard, one “halfway house” that can help achieve this balance is to provide peer reviews for your team’s code. Remembering that when you undertake that task you are acting as their peer and not as their manager is a key to making this work.

Developing soft skills

Managers need to cultivate leadership, communication, conflict resolution, and motivational skills to manage people effectively. This is a contrast to working independently or with small teams on technical tasks which can be the hallmark of a coding role, focusing on problem-solving and implementation.

Leading by influence rather than being that one technical authority can be an entirely new experience and needs a whole range of skills that may not have been needed before. You’ll need to develop a different way of listening, of responding to feedback, understand how to handle interpersonal dynamics, resolve conflicts and manage performance.

Managing time, and priorities (if you get the time)!

Software engineers have a luxurious existence, focusing on one task at a time, whether it’s a bug fix or developing a new feature. Managers don’t get to live that type of linear life and time management becomes an essential and complex part of work, with meetings, one-on-ones, project planning, team coordination, and possibly code reviews all competing for attention.

Different approaches work for different people when it comes to time management, and there’s no single solution that everyone can point at. Talk to your peers, experiment with different ways of managing your time, invest in tools to help you and find the route that lets you best manage your time effectively across multiple concurrent tasks.

Handling people

As an individual software engineer, you had more control over your interactions with others than you may have realised. No matter whether you are introverted or extroverted you will have found a way of working that was right for you. There’s a truth in that part of the reason you got promoted because you were good at what you did. However, the important part in that last sentence is that it referenced the past.

As a manager, you’ll have responsibility for a big range of different personalities, skill levels, and expectations within your team. Some people are happy to be left to get on with their tasks, others need regular check-ins, others will be constantly messaging you. Not only is this a significant shift from working with code, but will also change over time as people grow, develop, change their expectations etc. You’ll need to manage interpersonal conflicts, provide mentorship, support career development, and make tough decisions like handling underperformance while trying to maintain team morale.

The dynamic nature of this particular “challenge” means that it will continue to throw up different combinations which will each need addressed, this is an area where an experienced mentor or executive coach can really help you find a route through.

Aligning business goals with technical execution

This is an area that some people never really get their head around. As a manager, you need to think about the broader business context of everything that your team is doing. It’s not just about writing great code but also ensuring the company feels that your team is adding value when it’s compared against the business’s goal or mission statement. That vision can often mention precisely nothing that your team is working on today, so needs careful thought to make sure it’s communicated properly, both to your team, and to your own managers.

A good strong framework (like well-crafted OKRs) can be invaluable here, but sometimes this is missing, and you will find yourself negotiating with stakeholders, making trade-offs, and aligning technical decisions with product and business objectives to make sure the team’s value is well understood at the highest levels.

Don’t be scared

Set out in an article like this, the task can seem overwhelming. Each of these challenges requires a significant mindset shift and the development of new skills, which can be difficult for engineers who are more accustomed to technical problem-solving than managing people and projects. It can seem like a job where the requirements have not been well written, keep changing, and have impossible timescales.

Remember though, you’re not alone, and you’re not the only person to have ever made this jump. Whether you have a rich set of experience in your own personal network or choose to engage a professional coach or mentor to help, developing the skills you’ll need will set you for success, and managing a high-performing team of technical experts is a hugely rewarding experience. At this point, you won’t be surprised to learn that we can offer an executive coach, or mentor, engagement that is focused on helping talented tech through that management transition and beyond.