Imagine you’re a champion mountain climber. 

You’re skilled at planning routes, using equipment, and scaling mountains. But then, one day, you’re asked to lead an expedition to an unfamiliar peak. And you won’t know how much experience the other climbers have until everyone arrives.

When you do, you learn that:

  • Some are rookies
  • Others have been doing this for a while
  • And a few have quite a bit of experience

Even still, you might assume that because you’re good at what you do alone, you’ll also be good at leading a group doing the same thing. But it won’t be long before problems emerge.

You may:

  • Have trouble communicating with others after spending so long solo
  • Struggle to support them in the ways they need
  • Have a hard time understanding their exact skill levels and who to assign to what role
  • And so on

This is what happens when you’re an inexperienced leader. Your skills at mountain climbing don’t necessarily translate to leading a team up that same mountain. 

The same is true for an engineering manager (EM). You're not the one coding anymore – instead, you’re coordinating people as they do the tasks you used to complete yourself. And it pays to prepare for the difficulties you’ll face doing so, whether just starting out or in the role more long-term. 

The first has to do with your team.

1 - Understanding your team

Imagine you work with an engineer who’s great at implementing tasks but not good at structuring architecture. If you’re not aware of this, projects will face unexpected delays if they are assigned to refactor code. As you well know, people take longer to do things they don’t have experience with.

Understanding your team helps you avoid problems like this. You need to know:

  • Their skill sets
  • Their limitations
  • Their personalities
  • Who they get along with
  • What new tasks they’re ready to learn
  • And so on 

Having this information will help you advise your project managers so they can assign tasks properly. You will also know where you need to coach your team members so they grow as professionals. That said, just because someone doesn’t have a particular skill doesn’t mean they shouldn’t be assigned to a task. After all, one of the best ways to learn is by doing. 

So, feel free to approve the assignment of new tasks to your team members, but make sure to account for the extra time they need to complete the work. Once they finish, you can meet with them so together you can discuss:

  • What worked
  • What didn’t
  • And how to improve

This helps them grow even further.

2 - Assessing risks

As an EM, you’re expected to assess risks that can derail projects or cause major delays. You’re also expected to take steps to mitigate or prevent them in advance. This requires you to have a bird’s eye view of team processes and the ability to spot trouble before it gets out of control because these risks can affect long-term company goals.

These risks can include the following:

  • Experience levels: Your team may not have experience with the kind of tasks they will tackle next year, necessitating training or bringing on new hires.
  • Unreasonable expectations: Members of upper management can expect too much of current AI models and need reminding of their limitations.
  • Staffing troubles: Engineers have skill sets and familiarities in different areas and parts of projects or products, meaning it’ll take other team members longer to complete their work when they leave or go on vacation. Training multiple team members in the same skills and project/product familiarities helps mitigate this problem.
  • Engineer personalities: If you know an engineer is impulsive, for example, you can advise the project manager (PM) not to let them work on a key feature. The same goes for engineers who have personal issues with each other – sometimes, it’s easier to keep them working on separate projects.

Identifying and mitigating these risks requires foresight, flexibility, and thinking on your feet for appropriate solutions. You’ll learn more about your engineers’ particular quirks over time, but it’s good to start paying attention early.

3 - Telling engineers what to do

As a current (or former) engineer, you might’ve experienced an EM telling you, “Do XYZ because I told you so.” And that probably didn’t make you too happy with them. 

Instead of doing the same, give your engineers context so they understand why you’re asking them to do something. Be frank about: 

  • What precisely needs to happen
  • In what order
  • Why it needs doing (AKA, why the business needs it)
  • And why there’s a time restraint

In particular, if you want them to complete a task quickly rather than perfectly, tell them why this pressure exists.

Also, if the decision comes from upper management or non-technical members of company leadership, prepare for resistance from skeptical engineers. Go into the conversation with data showing why this approach, though perhaps counterintuitive to them, is the way to go. 

Preparing a compromise ahead of time is another good step. For example, if there’s a project component you need done a certain way, be open to engineer experimentation with a different component. This could motivate them to tackle a task they’d otherwise be indifferent to.

Also, keep in mind that not every situation is ideal. You won’t always have the time you need to explain a decision or process and answer questions about it. Sometimes, you’ll have to “sell” your engineers on an idea quickly. Others, you’ll have no time at all and need to rely on the trust you’ve built up over time.

4 - Resolving conflicts

As a current (or former) engineer, you’re used to solving issues with code, not people. Unfortunately, most conflicts come down to the second one, like when we get emotional or misunderstand one another. This prevents us from seeing other perspectives, which makes it harder to come up with an appropriate solution.

One barrier you need to overcome is your team members treating conflict like something someone has to win. No one wants to admit they’re both part of the problem and need to find a win-win resolution. But I’ve heard a lot about this concerning relationships and think there’s good advice there that applies to work as well. 

When you fight with your partner, you don’t want to win the argument. If one person loses, both people lose because at least one side will become: 

  • Defensive
  • Hurt
  • Or seek revenge 

Healthy relationships involve one person helping the other save face and maintain their dignity.

This means not just being the adult in the room but also incentivizing your disagreeing team members to connect with their inner adult. You can even model things like: 

  • Helping them save face
  • Apologizing for things that might not have been your fault 
  • And de-escalating situations with gratitude and kindness 

However, this doesn’t mean that some conflicts aren’t motivated by people operating in bad faith. If you sense that one side is manipulative or malicious, you’ll have to put up appropriate boundaries. But take time first to assess whether a person is just being emotional and needs to be brought back to equilibrium.

5 - Getting organized

In a way, engineers have it easy. They work with a PM. Tasks are assigned and explained before they implement them. Even large tasks are usually already broken down into steps, with an expected timeline provided.

EMs don’t have this same luxury – you have to be your own PM: 

  • Managing your time
  • Assembling your to-do lists
  • And setting goals and priorities

Doing this effectively, of course, requires a system. Which can seem daunting, but you can learn many skills to help with this, such as taking large goals and breaking them down into actionable steps. 

You also have to accept you can’t do everything, which means you have to identify and prioritize the most important tasks. A big part of this skill is identifying which tasks are going to be most worthwhile: the 20% of things on your list that will give you 80% of the results. 

In addition, you must abandon perfectionism and learn to say no to things that seem important but actually aren’t.

As well, supplement your memory with a calendar, and set notifications on your device to remind you when you have to do things.

But don’t try to master all these skills at once. Practice one or two until you can do them without thinking, then layer in another one. Otherwise, you’ll work like a juggler who immediately picks up ten balls instead of working up from three.

6 - Seeing the big picture

One of the most important things you can do as an EM is: 

  • Keep in mind what your team needs to do in one, two, or five years
  • Set goals based on this information
  • And make decisions: “We aim for this, not for that” 

And you have to know your reasons for doing so because you need to justify these choices to upper management, your peer managers, and team members.

Then, you’re going to have to sell this strategy to people so they support you. This part doesn’t stop, as you’ll constantly need to remind your team of the long-term plans. And when crises come up, you have to prevent them from getting distracted. 

This can be hard, though, because you might not see immediate results. It’s similar to brushing your teeth – you won’t notice if you don’t brush them for a few days, but you sure will if you haven’t brushed them for a year. So, you have to find ways to keep your team focused and motivated in the long run.

It helps if you know how to tell a good story. Explaining something’s importance through metaphors helps me a lot, especially if you pick a metaphor that has meaning for the person you’re talking to. 

The short version: face them head-on

One of the biggest challenges when transitioning from being an engineer to an EM is just how different the role is. You can’t rely on being a skilled engineer anymore. You have to learn how to be a leader, how to manage different personalities, and how to keep the whole train on track. 

This involves facing a number of challenges, such as:

  • Understanding your team: You need to know as much as possible about them, including their skill sets and personalities – then, you can advise PMs so they can assign work effectively, and you can coach team members as needed.
  • Assessing risks: These range from experience levels to staffing troubles, but the goal is to prevent issues from happening or react appropriately if they do.
  • Explaining things to resistant engineers: Provide them with understanding instead of simply telling them what to do, especially if it’s out of the ordinary.
  • Resolving conflicts: Find ways to motivate others to be the adult along with you – you can even model strategies for doing so.
  • Organizing your professional life: Create a system for time management, setting goals, and task prioritization. Also, realize you won’t be perfect, but you can still tackle the most important things you need to do.
  • Seeing and communicating the big picture: Know where your team is going even years down the road, communicate this to them, and help them stay on track.

When done right, you will make your work process smoother and be left with happier team members and managers. 


Want more tips on leading effective software engineering teams?

Join my newsletter if you’ve found this content useful


Originally published on Medium.com