Better Programming

Advice for programmers.

The Effective Engineering Manager

Francisco Trindade
Better Programming
Published in
7 min readMar 20, 2023

--

From MidJourney

I don’t know who needs to hear this, but the primary role of the Engineering Manager (EM) is to create an effective team that can deliver outstanding results. Is this controversial? Maybe.

As an industry, we have accepted and incentivized the idea of focusing on individuals as the primary job for a manager. As a result, it’s common to see EMs that see their role as getting engineers in through recruiting and ensuring they have a good work experience through individual coaching.

It’s also hard to be against this perspective. After all, hiring good people and keeping employees engaged are two very positive activities. However, as with everything in life, there are trade-offs. And the trade-offs in this case are:

  • Recruiting engineers is only a positive activity if they are joining an effective team. If not, adding more investment to an area that is not delivering results will be more detrimental than not.
  • Engineer fulfillment can only happen in an effective environment. Individual growth happens as people take on more challenging work, and that only comes when there is trust that a team can deliver. No amount of personal coaching will counterbalance an ineffective system.

Another common anti-pattern I have seen is when EMs avoid managing the team’s work under the principle of empowering engineers and letting them lead the work. In this situation, again, there are implicit trade-offs:

  • Unless the team works in a simple environment, managing a project moves engineers from maker to manager’s time. In other words, it makes the engineer less effective because they work as a de facto manager.
  • Different engineers will manage projects differently, creating multiple inconsistent ways of working within a team. That will only increase confusion and decrease effectiveness overall.
  • Individual contributors have a narrower view of how the team works and no official authority to change it, making it harder for them to improve ineffective teams.

The Truth is in the Middle

We don’t want EMs to be micro-managers, defining exactly how work needs to be done. However, it is also true that they should not be passive observers of the team.

That is because teams without clear processes create informal working methods, usually determined by the members with more power (i.e., tenure and experience). And this will not be productive for the team as a whole.

The truth, as usual, is in the middle. EMs should focus on creating an effective environment where the team uses well-designed and implemented processes for the team’s specific context. A well-designed system doesn’t mean a process-heavy team. It means having a minimal set of processes that will achieve the best results.

If that is done, it will create a virtuous cycle for team and individuals:

  • An effective team will be trusted by the organization, leading to more challenging initiatives and more autonomy in their work.
  • An effective team will have a multiplier effect on individuals’ growth and careers since those individuals will deliver more impact to the company.
  • An effective team will be an excellent place for new engineers to join. They will have plenty of opportunities to learn from seeing how to deliver software successfully.
  • An effective team will be a magnet for great talent who want to join a team that works well.

How to Get There

There is no set of rules on what an effective team should be. The context will vary for different companies, contexts, and individuals. Even within the same organization, teams will have better results adapting to their specific situation.

However, there are a set of principles that EMs can adopt in their work to create one.

Be an expert in how the work works

The EM needs to be an expert in how work gets delivered in their team. That means understanding how concepts go from idea to production and where the bottlenecks are in the system.

Understanding the work is not about understanding individual performance (Alice delivers more Pull Requests than Bob) but instead focusing on the work. Where does the work spend more time, from someone having an idea to being in front of customers? Where are quality problems with work going back and forth between people? Where is there waste, with work waiting for someone to pick it up?

Only by deeply understanding the system of work will the EM be able to focus their time where the most significant leverage is. A common situation in my career was being asked to improve an engineering team that needed to deliver better, only to find out that while engineering could be more efficient, the company spent 70% of the time on a project before the work got to the engineers. The results would not improve by focusing on how engineers are working. Instead, raising the conversation about how projects are defined and delivered was the best improvement I could help with.

Understand people and their strengths

There is a common misconception that systems (or process) thinking means treating people like machines. However, systems thinking and methods inspired by it focus on creating procedures so people can utilize their strengths.

In a software team, that is the same. To create an effective team, EMs need to understand the people within the team, their strengths, and their aspirations. That is simply because different groups will perform differently in different environments. For example, if the team is low in experience, having a tech lead that can define work more formally could be helpful. If the group is highly experienced, having less documentation and more autonomy could be more productive. Emphasizing written communication could increase the effectiveness of a distributed team.

Ultimately, the challenge for the EM is to fit the people to the job in a way that leads to effective results (the job gets done) and uses every individual’s strengths.

Be accountable for team results

EMs should be comfortable owning the team’s results, being accountable for them, and intervening where necessary. That doesn’t mean they have to be the experts on every detail, but they have to understand enough to assess the quality of work across different aspects.

This perspective is not based on EMs being the most senior or most important members of the team. However, they have a broader view of how work is done and the authority to change it when needed.

Not all team members will identify the same critical issues, nor will they think of the same solutions, even if they did. Some solutions will result in more critical issues. Out of this intellectual cacophony the leader has to do the work of comparing and contrasting concepts, integrating proposals, answering and asking questions, correcting misunderstandings, providing due recognition, sequencing input, and finally, producing a plan of action to achieve the purpose. — Systems Leadership: Creating Positive Organizations

While delegation is essential to the role, understanding what and who to delegate to is a decision the EM needs to make. And they need to do that with the perspective of owning the outcome of it. I have seen a common anti-pattern for managers to separate themselves from failures because an engineer didn’t perform the work with enough quality. As the team manager, the EM sets the system for the work and chooses the people who do it. In any situation, the outcome of the work goes past their decision.

In practice, EMs should understand the work across technology, people, and process and act when improvements are needed, supporting and helping the team achieve the best outcome.

Find time for active leadership

Lastly, EMs need active time leading their team to do the above. Having a fully booked schedule of 1–1s and regular meetings will not leave time for understanding and acting on the system.

One of the challenges of any management role is that nobody else defines how managers should use their time. Because of that, actively taking control of it is a necessary part of the role so that EMs can focus on where the highest leverage is instead of just trying to keep up to date with what is happening.

In other to do that, a few practices I have found useful are:

  • Actively manage your calendar, creating focus blocks and questioning every meeting you have to participate in.
  • Make sure every meeting you participate in is effective, and if it isn’t, intervene. A culture of effective meetings will save everyone a significant amount of time.
  • Create systems to replace meetings. For example, status updates are less necessary if the team’s board is up to date.
  • Regularly review and reset your calendar. Any structure that your calendar has will degrade with time.

Effectiveness is Worthwhile

Creating an effective team will ultimately lead to better results and more fulfilled individuals. Achieving that goal is the highest impact an EM can have on the team. More surprisingly, effectiveness will also lead to a more stable and less stressful work environment, where working smarter does trump working harder.

The less an organization has to do to produce results, the better it does its job — Peter Drucker

If you have found this content interesting, this post is part of a series on Leading Software Teams with Systems Thinking. Follow me if you are interested in effective engineering leadership.

--

--

Francisco Trindade
Francisco Trindade

Written by Francisco Trindade

Born in Brazil. Living in NY. Engineering at Braze. Previously MealPal, Meetup, Yourgrocer.com.au (co-founder) and ThoughtWorks.