Introducing Engineering Managers

Engineering management is a discipline and role that has been growing in maturity over recent years, now almost all but the smallest tech teams will have an Engineering Manager there to manage and grow engineers. 

A typical Engineering Manager will have a technical background and be actively looking to move into people management, they’ll mostly concern themselves with hiring and growing engineers but may, or may not also be writing code, introducing ways of working, conducting code reviews, leading on architecture, ensuring delivery, setting the strategy and pretty much everything in between. 

 

Styles of Engineering Manager

To help with job hunting and meeting role expectations I think about the variety of Engineering Management elements as being grouped into four distinct styles based on time and energy spent on each of the primary responsibilities – Code (writing, and reviewing), Architecture (designing and setting technical direction), People (hiring, managing, growing), Team health (ways of working, productivity, happiness), and Product strategy (what to build and when). 

The Tech Lead Manager

Engineering Managers who play the Tech Lead Manager role will line-manage people as well as lead on technical decisions. They’ll be hands-on with code and code reviews and usually work with a single team to deliver on team goals. 

The Tech Lead Manager is often the most senior engineer on the team and will work alongside someone setting the product direction (possibly a Product Manager) and possibly an agile coach to guide team health. Companies with a Tech Lead Manager style of Engineering Management will usually have an architect designing the system architecture and ensuring all teams meet architectural guidelines. 

The ideal candidate for this role will have deep technical knowledge usually in the language or technology that the team is using as well as being a proficient people manager. 

The Tech Lead Manager will spend most of their time and energy on code followed by people. TechLeadMgr

The Architectural Lead Manager

Distinguished from The Tech Lead Manager by not being hands-on writing code. The Architectural Lead Manager will still set technical direction and be involved in code reviews as well as managing people. Compared to the Tech Lead Manager, the Architectural Lead Manager can more easily work across teams without causing too many bottlenecks since they’re not expected to be contributing code (although they often will write non-critical path code). 

This Engineering Manager will work alongside someone setting the product direction, and possibly an agile coach to guide team health. There may still be an Architect involved with team direction but they’re likely to be less hands-on and work in an advisory role with the Engineering Manager leading on most technical direction decisions. 

The ideal candidate for this role will be a people manager with technical skills but they may have a different technical background to the team. Job requirements are more likely to focus on technical strategy skills over technical execution. 

The Architectural Lead Manager will mainly focus on technical strategy and people.

ArchitecturalLeadMgr

The People Manager

The People Manager Engineering Manager will primarily be responsible for managing the engineers on the team. As a dedicated People Manager this Engineering Manager is more likely to manage people with different skill sets to their own, they can more easily work across teams, and with a single focus, they have the ability to create a superior environment for coaching and people development. 

This Engineering Manager will work closely with people who are responsible for the team’s delivery and direction as well as technical decisions. In some cases, this could mean the Engineering Manager works closely with a Product Manager, Tech Lead, and Agile Coach as well as an Architect. 

People Managers may come from different backgrounds although must still be technical enough to gain respect from the team. Coaching skills are likely to be more valuable than coding skills. 

Almost all of a People Manager’s time and energy will be on the individuals in the team.

PeopleMgr

The Team Lead Manager

The Team Lead Engineering Manager is responsible for managing everything to do with the team. They’ll usually line-manage the engineers in the team as well as being responsible for the direction and delivery of the product/project.  

The Team Lead Manager will usually manage engineers who are at least as senior as they are, and often more senior as they focus on the team’s health and direction over specific technical decisions. Additional roles such as Agile Coaches, Architects, and sometimes even Product Managers are less likely to be found on teams with this style of Engineering Manager.  

Technical leadership and project management abilities are likely to be more valued than a specific language or technology. 

The Team Lead Manager has a more even spread of focus on the team’s direction, health, and individuals.

TeamLeadMgr

Engineering Management Expectations

Confusingly these four styles of engineering management and numerous variants of the four are all referred to as Engineering Management despite being very different roles. Succeeding as an Engineering Manager requires you to work out exactly which version you’re expected to be and then to focus your time and skills on the relevant parts. If you’re expected to be an Architectural Lead Manager but you’re spending all of your time focusing on engineer happiness and no time on the technical roadmap then you’re unlikely to succeed. Likewise, if you’re meant to be a People Manager but you’re constantly getting involved in code reviews and maybe even trying to write code then you’re probably missing expectations as well as stepping on other people’s toes. 

Working out the style of Engineering Manager

The easiest way to work out which style of Engineering Manager you’re expected to be is to find out which other support roles exist in the team. If you’re joining a team that also has a Tech Lead and a Product Manager and an Agile Coach then you’re likely to be a People Manager or an Architectural Lead. But if you find there’s no Tech Lead then understanding if you’re expected to contribute code or not might help determine if this is a Tech Lead Manager role or not. 

For people already in the role, or for identifying the style of other Engineering Managers consider how you prioritise your time. Are you more likely to miss a team retrospective or a technical roadmap session? Do you prioritise one-two-one meetings over all else or are you finding a way to squeeze them in besides writing code? 

The style is just the starting point

A great Engineering Manager builds and grows a team to be achieving to the best of their ability. As the line-manager it’s up to you to create opportunities and support people in order for them to achieve their goals, it’s also up to you to create the environment to allow the team to succeed.

If you’re working as an Architectural Lead but have a great engineer who wants to get involved in technical road mapping then make it happen. Flex in and out of your responsibilities to better support your team or create space for others as needed. Maybe a critical project needs more of your hands-on time to make it succeed, or perhaps you want to give someone more responsibility to help them grow. Sometimes people will leave and you’ll need to pick up some slack, or you’ll end up overly busy and need to drop things. Use the style of your Engineering Manager role to determine your core responsibilities and make sure you’re always hitting them, everything else can be scaled up and down as needed. 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s