What Makes a Great Engineering Manager?
Great engineering managers enable autonomy, build relationships with team members, and provide clear paths to execution.
This is the latest issue of my newsletter. Each week I cover the latest research and perspectives on developer productivity.
This week I read What Makes a Great Manager of Software Engineers? which was authored by researchers at Microsoft including Eirini Kalliamvakou, Christian Bird, and others. I also had the opportunity to interview the paper’s lead author, Eirini, which you can listen to here.
My summary of the paper
The researchers set out to identify the attributes of engineering managers that are most impactful for teams. There were two surprising discoveries along the way:
What makes a great manager of software engineers is mostly similar to what makes a great manager of other functions. This debunks the common perception that software engineering is "special". The researchers wrote: “The perception that engineers are different often makes managers reluctant to follow management practices from other domains, if at all.” While software engineering is a unique discipline, the attributes of a good engineering manager aren't dissimilar from managers in other disciplines.
The researchers also found that “being technical” isn’t as important as it is commonly believed to be. It's typical for top individual contributors to be promoted into managerial roles as a progressive step in their careers. However, the research found that while a “sufficient level of technical knowledge is necessary” for software engineering managers, technical proficiency ranked close to bottom in terms of importance compared to other attributes.
Eirini explained, “It’s important for engineering managers to be technical enough to follow the work their teams are working on, so they can have informed conversations with engineers. They need to have enough knowledge to help engineers make decisions… but engineers shouldn’t be promoted to management based on their technical excellence.”
The study found that it’s better for a software engineering manager to have average technical skills and above-average social skills than the reverse.
What makes a great engineering manager?
The researchers developed a framework that synthesizes their findings into the 15 attributes that make up a great engineering manager. The attributes fall into the three high-level functions of cultivating, motivating, and mediating a team of developers. There’s nothing particularly surprising in this framework, but it provides a comprehensive model that can be used for self-assessment or evaluation (more on this below).
When I first became an engineering manager, I remember reading as many books and articles on the subject as I could find. I wish I’d known about this research paper because it provides an analytical view on how to become a great manager. In our interview, Eirini shared that Microsoft includes this paper as mandatory reading for new engineering manager hires. In addition to training, the framework could be useful for designing better ways of evaluating engineering managers, which in my experience is a difficult problem for organizations.
Managers who “jump in and take over” won’t get honest status reports
Gergely Orosz, author of The Pragmatic Engineer
It's important to embrace status updates with empathy and support, versus reacting and taking over. There's a great story about this in the Mythical Man Month: “One of my managers let me lead a project. I told them the project was at risk *but* I had it under control. My manager stepped in and fully took over. I never ever reported anything being ‘at risk’ again, even when things were.”
When is the right time to build an EngOps team?
Ryan Atkins, Head of EngOps at Asana
Ryan recommends forming an EngOps team once an organization reaches 80-150 engineers. Other factors to consider:
Is there clear ownership of cross-cutting tools and initiatives? (EngOps can help with this if not)
How fragmented is your organization (eg. team structure, timezones)? “The more ‘seams’ that exist across functions and the more interaction between engineering and other parts of the business, the earlier you’ll need EngOps.”
Are your company’s processes and organizational strategies centralized? “Companies that operate in a top down fashion, with clear operating structures that cascade down to functions, can wait longer.”
How much does your company value organizational health? “There’s an implicit long-term mindset necessary to support an EngOps investment.”
Make sure to include “dependency” teams in project kickoffs
Nahi Ojeil, VP of Engineering at CaptivateIQ
Consider asking teams to use a template for project kickoffs that explicitly asks them to identify the major dependencies for a project. Then, include those “dependency” teams in a kickoff meeting. “It helps those teams to feel more part of that initiative,” and may make the project run more smoothly.
That’s it for this week! If you know someone who might like this issue, consider sharing it with them: