What makes a good Software Development Manager?

At Amazon and other tech companies, interview candidates get a lunch break in between their on-site interviews, and a lunch buddy gets assigned to accompany them. This way they can ask any questions they have about the team, the position they are applying to, or anything else that might help them relax. I love acting as a lunch buddy because I feel energized when interacting with candidates in such an informal setting. This past week, one candidate asked me a very interesting question during our lunch: what do you think makes a good engineering manager?

I used the same answer I usually give each of the engineers who report to me during our very first face-to-face meeting: I explain what my job as a manager consists of. A manager’s job is not to deliver a product or features, it’s not about delivering on any metric or increasing revenue. A manager’s main job is to ensure that their engineers grow in their careers, that they learn and develop their professional expertise. The second part of a job’s manager is to ensure that their team is happy while going through this growth experience, that they are excited, as often as possible, about coming to work. As long as there are good planning and prioritization exercises behind all that, features, products, metrics, and revenue should come naturally.

If we dive deep into the most important areas that a good manager should master, I’d summarize them as follows:

Lead by inspiration

Every organization needs a North Star, a bold vision. This helps engineers remain focused on what matters from a business perspective. Managers should help their teams define a bold direction, not impose it. Engineers of any level or seniority should be empowered to propose ideas that can move the team forward, and that means managers should always be ready to listen; if an engineer’s ideas get ignored systematically, they will simply stop offering them and will eventually disengage. Ensuring everyone inside the team has a voice is necessary to guarantee a healthy organization.

Serve, don’t command

Many people, especially students or even junior engineers, often think that managers are supposed to give orders. However, managers should support their teams by providing the right growth opportunities and challenges, as well as a bold vision and guidance. They should focus on serving their employees, not the other way around. Managers should provide a safety net that empowers engineers to do their best while helping them recover and learn from their experiences if they fall out of track.

Managers that facilitate a culture based on fear end up with teams full of fearful and resentful engineers. A common way of inducing subtle fear is by blindly focusing on metrics, making engineers accountable for them, while disregarding actual customer value and employee health. In this type of environment, engineers end up fearing to make decisions that could result in a metric drop. Independent decision-making is a core aspect of becoming a senior engineer, but it’s virtually impossible to coach engineers on this quality when they see a culture where taking risks can become a career-limiting decision. Engineers should have a safe environment where their successes are celebrated, and their failures are used as growth opportunities.

Humility and transparency

There is nothing more effective for losing a whole team’s trust in their manager than having hidden agendas or acting with entitlement. When a manager doesn’t trust their engineers, actions speak louder than words, and the team will notice.

Building a relationship based on trust between engineer and manager is absolutely essential for the team’s strength and long-term survival. Problems will always appear, mistakes will always be made, bugs will always exist. What makes a true difference is how the team approaches these issues; having a strong engineer-manager bond means that the manager is likely to detect issues earlier because the team will know that bringing the problem to light, as soon as it happens, is the best way of finding a good solution.

A good manager leads by example, admits problems immediately and takes responsibility, doesn’t blame others and never talks about an issue without simultaneously proposing a constructive solution or a path forward.

Trust, verify. Never micromanage

Micromanagement is one of the most enervating approaches a manager can use with their engineers. It breaks trust little by little and sends the message that the engineer is not trustworthy or capable enough. Even when an employee is struggling to deliver as expected, micromanagement is rarely a healthy way of addressing the problem.

The trust bond that I mentioned earlier is challenged when a manager questions every single move made by the engineer. Trust doesn’t have to be blind, of course, but checking on a project’s status should not mean micromanaging those involved.

Managers that provide space for engineers to figure things out without letting them drown are more likely to see those employees come out of the experience with valuable insights that can be used for their continued improvement.

People over product

I worked on Windows Phone for over a year, made mistakes, learned, improved, and grew by working alongside brilliant engineers and incomparable managers. Today Windows Phone is officially discontinued.

If a product fails, does it mean the team involved wasted their time? Absolutely not. Thousands of people advanced their careers and became senior engineers while developing Windows Phone. That growth experience cannot be discounted just because the product they created doesn’t exist anymore.

Products come and go, some continue being relevant after many years but many others disappear into oblivion. People’s professional growth, however, is never irrelevant. Managers should promote a culture where people are prioritized over products.

Conclusion

When we discussed how to find a dream job in the tech industry, we talked about how managers play a crucial role in an engineer’s career. Having a bad manager can have catastrophic consequences, especially in companies where engineers’ growth directly depends on their manager’s actions. Measure your manager using the areas above, and if possible, look for a manager that is clearly invested in people, that takes pride in helping their team grow. A successful career will be around the corner.

Did you like this article? Subscribe to get new posts by email.

Photo by Austin Distel on Unsplash

Originally published at geekonrecord.com

What makes a good Software Development Manager? was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.

Publication date: 
06/13/2019 - 12:11