What makes a good engineering manager?

Srikar Doddi
Atom Platform
3 min readMay 3, 2013

--

This past week, I was asked a very interesting question- What makes a good engineering manager? Here are some highlights and notes from that conversation.

Software engineers cope with a wide variety of issues such as re-factoring legacy code, dealing with bad design choices made by their predecessors, working on a dysfunctional team and the last thing you want for them is to deal with bad bosses. A good engineering manager must be committed to building great software, great teams, creativity, careers, and general welfare of the team members.

A fundamental question to ask when aspiring to be an engineering manager is why do you want to be a manager in the first place? Almost always you will find it difficult to come up with the right reasons. Even if you somehow manage to come up with some good reasons, it is always wise to assume that you will start out as a bad manager. This mindset will help you seek advice and find ways to improve.

Here are some thoughts to help you become a good engineering manager:

1. Lead instead of manage. I wrote about this in more detail here and here.

2. Traditional organizations encourage competition on the premise that it is healthy but research proves that it has negative effects on teamwork. Instead, create an atmosphere that promotes collaboration and co-operation.

3. Hire for passion and make sure they fit well with your team and larger organization. Hiring smart people and building teams that work is one of the most important responsibilities of an engineering manager. Check out Yishan Wong’s gem on this topic- Hiring is number one.

4. Success is situational just like leadership. So, set good context and goals for your team, and get out of their way. This takes a lot and requires you to overcome your fear of lack of visibility into details.

5. Pay your debt down. This applies to both your technical debt as well as culture debt (Good skills + culture misfit = culture debt).

6. Management is not parenting. I have seen a lot of managers spend most of their time resolving petty conflicts. We are all adults, lead with empathy and keep your team focused on the larger goal.

7. Learn to say no by explaining the costs of saying yes. Costs can be expressed in operational overhead, technical debt, culture debt, etc.

8. Protect your own time and your team’s time from trivia (meetings, extraneous processes, working on the wrong product, etc.). You can read more of my thoughts on time management here and here.

9. Be a survivor. You will need to ensure constant misalignment around organization structure, strategy, process, and culture. This is a tough job, so don’t give up!

10. Ask for advice both internally in your organization as well as outside. E.g., What would you do in this situation?, What am I missing?, Any thoughts?, or What do you think?

11. Do not encourage bad attitude by rewarding those who cultivate it. Whom you let go is more important as it sends a stronger signal to your team.

12. Simplify things. Make them less complex for your team. Good process, good teams, and good architectures all help to eliminate complexity in your systems.

The more you understand the rules of the game, the better you can play it.

--

--