Imagine visiting a botanical garden. 

While there, you see a series of small pools on a slope, the water flowing effortlessly from one pool to the next. When the water moves this way, it’s peaceful and beautiful. 

Now imagine some leaves clogging a channel between two of the pools. Unchecked, this can lead to the lower pool drying out and the top pool overflowing – the whole balance is thrown off.

But this doesn’t have to turn into a big issue. When it happens, a staff member comes to unclog the channel, and everything goes back to normal. 

The trick is to unblock the clog as soon as it occurs. You have a similar job as an engineering manager (EM).

Your success comes down to their success

As an EM, it’s your job to look after your engineers. And you should because their success determines yours, so part of your job is clearing the way for them. 

Like the garden worker, you’re not the one causing the water to flow. But you do need to look at the process as a whole and step in when it gets held up. 

This is how you make your engineering team successful, which you can measure across three stages:

  1. Implementing tasks
  2. Code review
  3. Quality assurance (QA) 

When things run well, work flows smoothly from the first stage to the next and then to the last in a timely fashion. While you won’t be the one completing these tasks, you can help them progress in a number of ways. 

1 - Implementing tasks

Your engineers complete the initial task in this stage. Unfortunately, as you probably know, many issues can prevent the work from proceeding forward.

The first concerns timing. 

For most tasks, you’ll have an engineer on your team who can do it. The question is whether they do it by a particular deadline. You can have an incredibly gifted engineer assigned to a task, but you’ll be in trouble if they’re known for doubling the allotted time when they do something new. 

Another major way the process can slow down is when there are communication issues

Examples include:

How you can help

For timing, coordinate with your PMs

Each of your engineers has their own skill set and specialty. So, if they’re assigned to a task they’re not familiar with, they’ll have to spend time catching up before even starting. 

PMs won’t know your engineers as well as you do, though. So, you need to advise them about which engineers are the best for what they need.

Success here means accurately assessing how long a task will take and alerting the project manager (PM) as soon as possible if it becomes clear it will take longer than expected. If necessary, you may need to simplify or break large tasks down into smaller phases.

But that doesn’t mean it’s always bad to assign a less-skilled engineer to a task, either. As the EM, you want your engineers to familiarize themselves with different parts of the project. And the best way to learn is by doing. 

But make sure to tell your PM if you want an engineer to learn something new. Your PM needs this information so they can allocate some extra time in the schedule.

For communication issues, ask team members during one-on-ones what their needs are and what assistance they need. Encourage them to be clear about these needs and to communicate them directly.

You will also need to step in if conflicts become disruptive. This also means sometimes helping team members work through their emotions when they get heated on the job. 

2 - Code review

As you know, engineers review other engineers’ code to ensure that:

  • There are no obvious issues with it
  • And it follows proper coding standards

Success here equates with how quickly the code passes through the review process as a whole. Maybe an engineer was super speedy and wrote the code in two weeks when they were allowed three. But if the code doesn’t pass review and they have to work on it again for another month, then you have a problem. 

How you can help

As an EM, you can help code review in a variety of ways.

For example, sometimes, your engineers consistently produce code with issues.

Solving this requires knowing which of your engineers struggle with this problem. They may simply need to tune up their skills. If so, you can focus on them during one-on-ones and help them improve their work.

Other times, your engineers are unfamiliar with the tasks assigned to them, especially new hires.

For new hires, you’ll need to get them up to speed on your standards as soon as possible. You can delegate this to one of your senior engineers who’s been working on the project long enough.

For other engineers, you’ll need to work with PMs to ensure they aren’t assigned these tasks or to have the proper time needed to complete the work.

In some cases, you’ll have superstar engineers who write immaculate code, so they have unrealistic expectations while reviewing others’ work.

Solving this issue requires a conversation with that engineer, understanding and validating their viewpoint, and explaining why they need to ease up. 

3 - Quality assurance (QA)

The QA process slows down when:

  • Code doesn’t work fast enough
  • Features don’t work as a whole
  • Things don’t look good from a user interface (UI) standpoint 

If regression testing shows the feature, when integrated, breaks other product features, it needs to be sent back for reworking. This slows the process down even more, as it needs to pass QA again until the code works. 

How you can help

The QA process is one stage where you’ll be less able to assist in the process, but you can still help.

QA will alert you when an engineer generates too many bugs. This information could signal persistent issues like those mentioned above, such as unfamiliarity with the work or a rush to finish.

You can intervene to help fix these issues by coaching engineers or by coordinating with PMs about timelines. In emergencies, you can even provide technical expertise (given your past engineering experience) to solve the problem.

Other ways you facilitate success

So, your job is to make sure the work passes through the three above phases as quickly and accurately as possible. But you don’t want to get overly involved in each phase. This would take too much time, and you have too many other tasks to think about.

Instead, look at the process as a whole and step in only when a problem prevents the work from moving forward. You’ll get better at this the longer you’re an EM.

In addition, you know where projects and the company as a whole are headed, but engineers won’t. You can determine how to best improve the process so they’re on the same track.

For example, maybe they use a certain library to make their job easier. But maybe that library doesn’t align with where the company wants to go, so you’ll need to point them in another direction.

Or maybe your CEO communicates vision, perspective, and desired outcomes, but they may not know how to determine the technical steps to get there. So, you can come in and translate the ideas into a concrete direction for your team.

In other words, you have to think about the future and help engineers to see it, too, so things don’t just work next week but for as many years to come as well.

The short version: let it flow

Like a gardener unblocking the channels between pools, EMs facilitate engineer success in a number of ways:

  • Keeping the big picture in mind and stepping in when needed
  • Ensuring their work aligns with the future and translating company goals into concrete steps for them to take
  • Speeding up implementation when miscommunication, mistakes, or conflicts slow them up
  • Stepping in during code review when issues of inconsistency, unfamiliarity, and unrealistic expectations arise
  • Coaching engineers after QA reviews reveal too many bugs

Remember, you don’t have to intervene in every single situation. Instead, only act when something is holding the whole project up. In this way, you’re not overwhelming yourself with work or burning your relationships but instead aiding the process to keep it moving along.


Want more tips on leading effective software engineering teams?

Join my newsletter if you’ve found this content useful


Originally published on Medium.com