6 habits to adopt to become an effective software engineering manager

Peter Simic

You may be the best programmer on your team, but once you take on the role of an engineering manager, your responsibilities go much further than coding.

Becoming effective at a managing position takes time, especially if you’ve spent a bigger chunk of your career dealing with technical work only. If you want to be an excellent leader to your team, you should start by incorporating some useful habits into your routine.

This article explores what these habits are, and how you can put them into practice.

With a bit of patience, these six management habits will become second nature, providing your team with an engineering manager every developer wishes they had in their company.

Keeping management and technical leadership apart

As a developer, you may have had fewer responsibilities and were assigned clean-cut tasks. Now that you’re managing developers, things are a little more complex.

To become an effective software engineering manager, you have to find the balance between team management and technical leadership—and avoid mixing the two.

We’ll use a real-life example to illustrate the importance of staying on top of all aspects of the job.

Alex Perry, an engineering manager now working at the software company WM Technology, started his career as a dev, then a system architect, and was later promoted to lead and management roles.

Source: LinkedIn

In a Built-In interview, Perry describes the challenges of becoming an engineering manager. He states that even when he was a senior engineer, his responsibilities were related to coding only.

However, that changed with the transition to management.

“You’re now accountable for the team’s contribution as a whole, helping drive strategic planning and execution, giving your reports feedback, and building career development plans, plus a host of other new responsibilities.”

Keeping up with the people, the codebase, and the senior stakeholders sounds like a lot of work, and it is. This is why you should form a habit of departmentalizing it.

Keeping these areas separate will help you stay organized. Moreover, your team will be able to rely on you knowing these aspects of your job are of equal value to you and that you’re not putting the work above the people.

Let’s return to Alex Perry to see how he overcame the challenges of becoming an engineering manager at WM Technology.

A method that helped him was trusting the engineers with the tech.

“Building trust with the engineers, and learning to ‘hold on loosely, but don’t let go,’ meant I could spend more time managing up and across to ensure the team was on the most productive path toward achieving our business and technology goals.”

That way, Perry didn’t have to neglect management to constantly supervise engineering.

So, if you want to ace both management and technology, you have to make sure you dedicate enough time to both.

Multitasking won’t get you far; you’ll be able to achieve the best results by approaching each work area with your full attention and focus.

Providing the right resources for the team

Creating a high-quality software product requires sufficient time and funds. As an engineering manager, it’s a part of your job to advocate for your team and provide the resources they need.

According to Planview, formerly known as Innotas, more than half of IT professionals have had a project fail due to a lack of budget, time, and staff.

Source: Shake

If you’d like to avoid putting your company in such a position, you should keep tabs on how your projects advance and react as soon as you notice your engineers struggling to meet milestones.

But how are you supposed to handle resources with so many tasks you take on as an engineering manager?

Let’s review some expert methods.

The following image shows how Karl Hughes, the founder of Draft.dev, broke down his time into four categories during his eight-year tenure as engineering manager.

Source: Toptal

Hughes lists management, planning, and meetings as parts of the managerial category. That took more than a third of his working hours.

Since developers usually don’t attend meetings with stakeholders, it’s an engineering manager’s job to represent their interests and secure the necessary resources, which is what Hughes did when he was a manager.

“Making sure my team was happy, advocating for them in business meetings, and helping our product team create technical specs were all part of my engineering manager duties at Packback.”

It’s worth noting that asking upper management or clients for more resources should be your last resort. However, if software development KPIs show you’re running out of time or money, you should gather your engineers to ask for updated estimates to help inform your next steps.

Whether you ask for a deadline extension or additional funds for your team, your demand should cover the following steps:

  • Explain the reasons
  • Document the change
  • Maintain the quality

Having enough resources at your disposal will allow the team to focus on writing good code without cutting corners. Resources can come in many forms, such as finances, additions to the team, or software tools that make a developer’s life easier.

For example, if you’re falling behind on a project because testing is taking too much time, you should try out Shake, our crash and bug reporting tool.

Source: Shake

They say time is the most valuable resource. Well, our clients have noticed a 50% increase in bug reporting speed. By working with Shake, you might free up so much time that you won’t have to ask for deadline extensions.

Making meetings productive

Meetings are an integral part of software development. Yet, many developers dread them because they interrupt work. Since you can’t avoid holding meetings altogether, you should strive to make them productive.

When asked about the highest cost to their organizations, more than a third of professionals listed unnecessary meetings as the number one culprit.

Source: Shake

Meetings are an inevitable part of work. You can’t avoid them, but what you can do is cut down on the number of meetings and make the ones you have as effective as possible.

To see how, let’s turn to expert advice provided by Sucheta Goel, an engineering manager at GoCardless.

Source: Medium

GoCardless is a payment processing solution. Due to the rapidly changing trends in the industry, the engineers at the company have to be responsive. Goel participates in the following types of meetings to keep engineers informed:

However, Goel prioritizes keeping meetings relevant to the participants. She finds group meetings an excellent way to engage different perspectives and ask and receive feedback.

When it comes to one-on-one meetings, Goel makes sure they are as valuable.

“I make time to have one-to-ones with each member of my team weekly. At least one of these meetings each month is dedicated to their career goals and ideas, because we are investing in their career development.”

So, if you want to become a more effective software engineering manager, you could implement an approach to meetings similar to Goel’s.

In other words, you should organize a meeting only if it’s necessary, and invite only the right people.

Well-organized meetings will help you improve communication and give the team a platform for discussion. However, don’t forget that not all discussion is productive.

Since engineers love to debate technical topics, and you are the manager there, you should warn the team if the conversation goes off-topic. This will ensure that the time reserved for meetings is used effectively.

Delegating strategically

You can’t become an effective engineering manager if you’re aiming to do everything yourself. Such an MO leads to burnout and lower quality of work.

Instead, you should learn to delegate early on in your management career, and do that strategically.

Bug and crash reporting tool for your app

Try Shake SDK for free.

Do you know what happens when managers delegate tasks to other employees?

Besides the evident benefits such as having more time and teaching your team new skills, a Gallup study has also found that leaders who delegate make their companies grow.

More specifically, Gallup has studied the impact of leaders with high delegator talent and noticed that they’d achieved a growth rate 112% greater than those with lower delegation skills.

Source: Shake

This finding means that mastering the habit of delegation benefits not only you but also your team and the company as a whole.

However, it’s not that easy to just hand responsibilities over to somebody else. Many engineering managers claim that delegating was one of the most challenging parts of their jobs.

Still, once you learn how to delegate, you’ll notice a positive shift in how your team works.

For instance, José Caldeira, VP of engineering at OutSystems, reports that delegating tasks helps his teammates grow in their jobs.

Source: OutSystems

Caldeira goes one step further and even delegates something most managers dread handing over: making decisions.

Let’s see how.

Delegating tasks boils down to choosing a developer with the most suitable technical competencies. On the other hand, Caldeira says that delegating decisions is more about trust and accountability.

To put it another way, he advocates the approach where you strategically choose a person to delegate to based on their decision-making capabilities.

Below is a table with five levels of delegation Caldeira has observed in engineering teams.

Junior person

Needs to first talk with the manager and relies on their help to solve problems

More experienced junior

Discusses potential solutions with the manager and picks the right solution with their help

Experienced engineer

Comes up with solutions themselves but relies on the manager to choose the right one

More experienced engineer

Identifies the right solution and consults the manager on actions they plan to take

Senior engineer

Knows how to solve the problem and informs the manager of the actions they’ve taken

Although senior engineers are an obvious choice for delegating a part of the decision-making process, you shouldn’t forget about delegating some areas of responsibility to juniors as well.

That way, you’ll gradually build an autonomous team across all seniority levels.

Giving other people control over how tasks are carried out is not easy, but you shouldn’t hesitate to delegate.

Not delegating enough is considered one of the mistakes in managing software developers. If you’re interested in more management mistakes to avoid, you can read our article here.

Giving their team feedback

Rather than letting the team guess about their performance, effective software engineering managers have a habit of providing regular feedback and giving credit where credit is due.

You’ve probably heard of the feedback sandwich, a method used to deliver a piece of negative feedback between two compliments.

However, experts at Harvard Business Review have reviewed research on feedback and concluded that the praise to criticism ratio should be 5:1. To make your teammates feel more confident, you should include even more praise in feedback.

Source: Shake

Therefore, a trifle or a layer cake could be a more suitable way to represent the feedback structure.

The software industry experts also advocate providing feedback with praise. To see more details, we’ll look at a series of Tweets written by Nacho Iacovino, a software engineering coach.

According to Iacovino, a good feedback session starts with giving compliments.

Source: Twitter

If there’s anything you particularly like about a developer’s performance, be vocal about it.

They organize the code well? Compliments.

They helped a junior dev with documentation? More compliments.

When you open with positive statements, the person receiving feedback will become encouraged and more receptive to potential suggestions.

The way you deliver criticism also matters. Iacovino suggests asking the dev what they think can be improved before offering your opinion.

Source: Twitter

Allowing the dev to analyze their own performance provides you with an insight into their thought processes.

If your dev is aware of the exact things they should improve, you can rest assured that they will also take your constructive criticism seriously.

When it comes to analyzing mistakes, or rather, areas of improvement, Iacovino claims that it’s best to be specific.

Source: Twitter

So, instead of asking the dev to improve their code, help them by listing clear directions you expect them to follow.

Since software development is done in teams, you shouldn’t disregard the importance of praising developers in front of their teammates.

Criticisms are best distributed privately, but sharing success stories with the rest of the team can boost morale and perpetuate the feeling of accomplishment.

Getting to know their team

Engineering managers rely on their teams to perform well. Since you can’t feel comfortable relying on people you don’t know, you should make it a habit to get to know all individuals who join your team.

Learning about your team doesn’t make you nosy; it shows you consider them colleagues you want to connect with rather than just coding machines.

An additional benefit of creating interpersonal relationships is establishing psychological safety within the team. Google finds that quality is by far the most important factor for building a successful team.

Source: Shake

According to re:Work, a project by Google, stable relationships within teams allow individuals to feel safe to take risks.

So, if one of the habits you’re aiming to form is building an autonomous team you can delegate tasks and decisions to, keep in mind they’ll only accept new duties if they feel completely comfortable working with you.

At this point, you might be wondering how to get to know your team and create meaningful relationships with them. If you’re considering a team-building exercise, let us stop you right there—not everybody enjoys spending their free time with coworkers.

Here’s just one answer on a Quora thread about team building expressing a strong dislike for such activities.

Source: Quora

Instead, you could create a space during onboarding where you learn more about the new hire.

In the article about companies with great onboarding experience, we mentioned that Zapier flies all new engineers to California for a week.

They spend time working together and getting to know the team.

Source: Zapier

For best results, you should continue working on team relationships even after the onboarding ends.

If you happen to have introverted engineers on your team, you could use one-on-one meetings to check in on them.

Lastly, building an excellent engineering culture can help you provide your team with a comfortable working environment.

Not sure where to start? Then this article could have some helpful pointers.

Conclusion

Your technical expertise is vital for the team’s success, but it can’t carry an entire project on its own. Because of this, it’s a good idea to work on forming habits empowering the entire team.

Fortunately, getting up at 5 AM is not a mandatory habit for becoming an effective software engineering manager.

The habits we’ve listed are much more tenable; they all boil down to paying attention to your team members and responding to their needs.

Bear in mind that forming habits takes time, and allow yourself a period of adjustment before they become your instinct.