How To Successfully Manage A Team Of Software Engineers

By Sarah King

Having an effective software engineering team can be critical to a company’s success. This article describes a number of key steps an engineering manager should consider implementing for the benefit of the team and the company.

Although the tips outlined in this article are specifically directed toward managing software engineering teams, many of these strategies can be more broadly applied to managing other employees as well.

Build Trust With the Engineering Team

Building trust is one of the most important things you can do as an engineering manager. Studies have shown that high-trust environments regularly outperform more structured environments in which employees have a lot of oversight.

Know Your Engineering Team

Your engineering team is made up of individuals with differing experiences, expertise, ambitions and personalities. It’s important to take the time to get to know each member of the team on an individual basis. You should determine their strengths, weaknesses, challenges and professional ambitions.

Here are some tips for getting to know your team:

  • Build rapport through one-on-one meetings
  • Listen to the team
  • Ask questions
  • Spend time working with them directly
  • Ask about their preferred work style
  • Ask about their preferred communication style (phone? email? Slack?)

Motivate Team Members

Understanding what motivates team members can make you a better manager. It will also encourage team members to do better work with more autonomy and less oversight.

Here are some tips to motivate your team:

  • Frequently acknowledge individual contributions
  • Recognize exemplary work, particularly when sharing updates from the team with cross-functional stakeholders and executives
  • Reward exceptional performance
  • Spend time with team members to learn about their career goals and what motivates them
  • Find career experiences that align with individual career interests
  • Create opportunities for your team to develop new skills to grow their careers

Be Inclusive

Software engineering teams operate in remote, hybrid, and in-office models. The people on your team often will come from a variety of backgrounds and diverse cultures from all over the world. As a result, it’s important to foster an inclusive culture where everyone can apply their various strengths while doing their best work.

Here are some tips to help team members feel included:

  • Highlight the expertise new members bring to the team
  • Pair new team members with other engineers
  • Have a conversation with new hires to learn about any accommodations that they need to be successful
  • Help new engineers develop key relationships
  • Support synchronous and asynchronous communication styles
  • Create space for team members to participate in team conversations

Encourage Collaboration Between Engineers

While it’s important for an engineering manager to know the engineering team, it’s also important for team members to learn about each other, too. As an engineering manager, you need to give team members the space to do their work, while also encouraging the team to collaborate with each other.

Here are some tips to encourage engineers to collaborate together:

  • Keep team initiatives high-level so that projects require teamwork
  • Bring the team together when kicking off new projects
  • Leave time to celebrate and learn after achieving team milestones
  • Encourage the team to focus and finish current team objectives together before individuals move onto the other priorities

Do Not Micromanage

A good manager knows how to delegate. You need to trust your team. To be a successful manager, you have to avoid any tendency to do all the work yourself. Micromanaging is not productive and instills anxiety and stress on the team. Team members want to feel they are trusted and respected. Inspire and guide the team instead of just issuing assignments.

Develop and Refine the Mission

As an engineering team leader, it’s critical to have a clear vision and mission for your team. Your team needs to understand where they are going and whether or not they are making sufficient progress. Clear communication ensures that your team and adjacent teams have a consistent picture of your team’s status.

Create a 30,000-Foot View

Your team needs to move quickly. It’s your responsibility to help your team zoom out and consider their work in the context of other company goals.

Here are a few ways to help your team focus on what is important:

  • Highlight how your team’s work impacts company initiatives
  • Spotlight two or three key problem areas that you want your team to keep in mind
  • Regularly review product and technical KPIs with the team
  • Consolidate team documents into a concise two-page executive summary

Define Success

You must have an in-depth understanding of each project that the team is working on. As the leader, you need to clearly understand the key goals and milestones for the project and everyone’s roles. Make sure that you create clear goals for the team, but also seek the team’s input to refine goals into actionable work that the team can execute and work together on.

Here are some tips for defining success:

  • Make sure the team understands the bigger picture and goals
  • Communicate potential problems early and solicit solutions
  • Ensure cross-functional stakeholders are bought in
  • Ask the team how confident they are in achieving success
  • Foster a fast, continuous feedback loop

Communicate Clearly

Communications with your team should be clear and concise. Regular updates to the team are beneficial. Regular updates to management are desirable as well.

Here are some communication tips:

  • Consider your audience when you are communicating, whether it is the team, stakeholders, or executives
  • Lead with key information before expanding into additional technical details
  • Make it clear what input you are looking for from your audience
  • Share communication templates that will level up technical conversations within your team

Resolve Disagreement

You have a high-trust team that has a clear direction, but your team needs to deliver on its promises. Occasionally the team may reach an impasse and may need some help to maintain forward momentum.

Here are some tips to help resolve disagreements:

  • Define a strong ownership model to make it clear who is responsible and accountable to make a decision
  • Simplify the problem that needs to be solved to reduce technical complexity
  • If the team is stuck, and multiple good options exist, rely on your technical expertise and known context to choose a path forward
  • Schedule a future time to re-evaluate a decision while committing the team to a particular technical strategy

For more information, the book Crucial Conversations is a great resource for how to effectively lead through high-stakes conversations.

Make It Safe to Provide Honest Estimates of Time Needed to Complete Work

Software engineering managers need to provide high-level estimates to coordinate their team’s work with other parts of the company. It’s critical to the company’s success that teams can work together to forecast when various initiatives can realistically be completed.

Here are some tips to create a culture of honest estimation:

  • Start by building trust within the team and making estimation a safe practice. Otherwise, estimates may create a toxic team culture
  • Don’t micromanage estimates. It’s okay if a four week project takes five weeks, but it’s not healthy for a company when a one month project takes six months (or more!) to deliver
  • Seek the team’s feedback if estimates are unrealistic or have known risks
  • Use estimates to determine when to break down complex projects into more manageable chunks
  • Understand your team’s effectiveness (how much of your team’s time is impacting the team’s strategic goals)
  • Understand your team’s efficiency (how reliably your team is able to deliver planned projects on time)
  • Regularly use estimation to improve the health of the team rather than micromanaging individual performance

Define “Done”

It’s often challenging for engineering teams to provide consistent evaluations of their work. One source of variation is that engineers may have different views of what it means for their work to be “done” or might not consider other steps after writing the code itself.

Here are some tips to define “done”:

  • Set expectations that completing work includes taking time for testing, QA, deployment, release, validation, and verification
  • Ask engineers to pair with stakeholders (such as product managers, design, or customers) to seek early feedback before releasing software
  • Encourage the team to verify their work is released as expected and is having the intended impact
  • Ask the team to share learnings and insights from recently released work and how the work measurably impacted KPIs

It’s important for the team to effectively develop, iterate, test, deploy and release. See this helpful article: Gillespie, Deploy !=Release (Part 1 and Part 2).

Learn, Improve and Iterate

Engineering managers are responsible for continually refining and improving their teams.There is no one-size-fits-all solution for all teams, but leaders can use these strategies to help a team quickly learn and improve.

Here are a few tips to help your team learn, improve and iterate:

  • Schedule regular team retrospectives to learn what is working as well as what is getting in the way of the team’s success
  • Solicit the team for feedback and ideas on how to modify team practices
  • As the team’s effectiveness and efficiency increases, consider removing processes and controls that have proven to be ineffective
  • Provide coaching and support to individual team members
  • If individual team members become bottlenecks for team effectiveness, you may need to make tough decisions for the benefit of the team and the company

It’s essential for the team leader to provide accurate and in-depth performance reviews. When it’s not working out with a team member, sometimes warnings are appropriate, but other times the employee will need to be let go. You absolutely have to do this in a legal manner. Coordinate with the company’s HR department or in-house counsel to take the proper steps. Be fair to the employee, but also be fair to the company.

Encourage Knowledge Growth

Encouraging your team to grow their knowledge is a great way for engineering managers to keep their team engaged and motivated. Continuous learning helps your team strengthen key skills, develop new skills, and incorporate best practices from the industry.

Here are a few ways to encourage the team to expand their knowledge:

  • Share news and updates from tools that your team builds with
  • Encourage employees to join groups or clubs that specialize in languages or frameworks that your team uses
  • Ensure people leverage their learning and development budget by raising awareness of applicable learning opportunities or conferences
  • Leverage your network to invite customers or other technical leaders to present to your team
  • Ask your network about opportunities that align with the motivations and interests of individuals on your team

Encourage the Use of AI With Appropriate Precautions

Artificial intelligence (AI) is starting to become an amazing tool to assist software engineers to more accurately and efficiently develop software. As team leader, you should be guiding and encouraging the engineers on the proper use of AI tools.

However, there are several major caveats in using AI for software engineers.

First, users have to understand that the first output from an AI application could have major mistakes or omissions. The engineer using the output should check for bugs and ensure the viability and reliability of the code. It is better to view the initial AI output as a first draft that may need heavy editing.

Second, there have already been reported instances of confidential company information being uploaded to AI applications and that information inadvertently later becoming publicly available. Engineers should be directed to avoid providing any identifying or confidential company information.

Applying These Practices of Successful Management to Your Engineering Team

Start by building trust within your engineering organization, develop and refine the mission of your team, reliably deliver projects, and encourage your team to expand and share knowledge with each other. Together these practices have helped teams excel and create an environment where people are able to do their best work.

More articles from AllBusiness.com:

About the Author

Sarah King is a software and technology leader and successful entrepreneur with over 14 years of experience, including 5 years of management experience. She has worked in the EdTech, FinTech, media, mobile apps, gaming, payments and autonomous vehicles spaces. She has a B.S. in Computer Sciences from Harvey Mudd College. She has managed engineering teams at Netflix, Ripple and Cruise Automation. She can be reached through LinkedIn.