I’m currently taking some time away from my job on parental leave, and it seemed like a good time to reflect on the lessons I’ve learned the last few years about engineering management, starting with a base assumption of what it is that engineering managers actually do
There are a lot of different ideas out there about what engineering managers actually do, from pithy one liners like “nothing” or “meetings” to detailed expectations that sound like a superset of tech lead, project manager, and people manager roles. When I got started in management I quickly found that at fast growing companies people will happily flow as much work as possible to EMs, and it’s important to have a clear idea of what your job really is, because the workload will quickly become larger than one person can do – at which point effective managers excel primarily because of good time management and prioritization. Those skills start by understanding your core responsibilities.
In High Output Management Andy Grove summarizes a manager’s output as the sum of the output of his team and the output of neighboring teams that he influences. A manager’s goal then is to maximize those outputs – a framing that is helpful to come back to when it comes to prioritizing work. Making good choices of what to work on is a different article, but for now I’d like to consider a semi-comprehensive list of the different areas a manager can focus to influence those outputs. In my career and reading I’ve seen a pretty consistent set of 3 high level areas that effective managers invest in: facilitating information flow, driving progress forward, and building a sustainably productive team.
Facilitating information flow includes a mix of information gathering and information sharing. Engineering Managers are responsible for doing the work to understand what is happening in their team and also understand what is happening in the broader organization. Effective EMs then find useful ways to synthesize and share that information to help their teams be more effective and give other teams and executives clarity into what is happening with their team. There are a multitude of anti-patterns here including undersharing or oversharing in either direction, manipulating people via information flow, and failing to extract and emphasize the most critical pieces of information. But doing this right means bringing clarity to everyone an EM works with, pushing the most important information to the people who need it and making it easy for people to pull other information when needed.
Tools for facilitating information flow include 1 on 1 meetings, building or advocating for processes and tools that expose team and project status clearly, encapsulating decisions and reasoning in documents that can be shared widely and referenced later, and asking good questions in standups and project meetings that lead to better understanding of problems and any misalignments between the team and the business. Getting good at this stuff means being a good written and verbal communicator, keeping an attitude of curiousity and humility that lets you learn from others and stay up to date with what is going on, and being intentional about building relationships with all of the key people you work with.
Driving progress forward breaks down into 3 parts: decision influencing, delegating/monitoring and “doing the work”. The first item here is phrased as decision influencing rather than decision making because while you will have to make many decisions as an Engineering Manager it is even more common and in many cases more desirable that you’ll be providing input and influence on decisions but not ultimately “owning” the decision yourself. Delegating work to others is an important part of getting things done and scaling yourself as a manager, but to again quote Andy Grove “delegation without follow-through is abdication”. So even delegated tasks still require the work of monitoring and supporting, and thus take time. Finally, EMs sometimes take on work that is actually directly part of their teams day to day – writing code for a feature, designing architecture for an upcoming project, or debugging a production issue. That last point is the most controversial – there are plenty of “engineering managers shouldn’t code” zealots out there. I simply add it here as something an EM can do to increase their team’s output. Whether it is an effective or impactful activity is going to be highly context specific and is out of the scope of this article.
Progress on a team’s work has the shortest feedback loop of the 3 top level areas: missing information can often go unnoticed for a while, and unhappy teams' troubles may take a while to manifest. But everybody notices when your team is not succeeding at it’s goals. Thus the anti-patterns here are often trading off team and communication for an appearance of progress: doing too much work yourself at the expense of your team’s development and long term scalability, failing to take responsibility for your team’s output – often by delegating without supporting a teammate, or making decisions that optimize for making yourself look good at the expense of your team or other parts of your organization. Getting really good at driving progress as an engineering manager means learning to delegate with an appropriate amount of support and monitoring, learning how to influence work usefully without having to own it end to end and being strategic about what you yourself try to own.
Building a sustainably productive team involves a mix of hiring, culture shaping, team development, and what Michael Lopp calls the care and feeding of engineers. Hiring new engineers is arguably the highest leverage activity we undertake as engineering managers – it’s a one time process that will have impacts on your team for years. Engineering managers have outsized influence on their team’s culture: what work is valued, what the expectations are for meeting preparation and timeliness, how people are treated, what type of people and ideas are welcome. This is often influenced as much by what EMs neglect as what they do. EMs can help their teammates develop through thoughtful feedback, coaching, sponsorship and training. And we work in an industry where our teammates usually have many great work options – setting aside the moral case for being a compassionate manager, managers that do not care for their employees, understand their needs, concerns and ambitions, and help them thrive are unlikely to develop a sustainably productive team over any length of time.
The biggest anti-pattern here is simply neglecting the work – I’ve worked for and around managers who simply didn’t take the time to regularly talk with their team, were not mindful of the impact their actions had on culture, or treated their employees as replacable cogs in an industrial machine. Even hiring is often not given the investment it deserves based on impact: many managers are content to offload sourcing and evaluation to other people or put minimal time into preparing for interviews and new job postings. Getting really good at building a sustainable team means thinking of yourself as a role model for the behavior you want to see, investing heavily in hiring and supporting your current team, regularly giving and seeking meaningful feedback and being organized about helping your team in their career growth.
It’s all about outcomes
I labeled this list as semi-comprehensive because while most of the valuable work I do as an engineering manager falls under one of the categories above, managing engineers is fundamentally different than the type of work someone who has just been promoted from a mid-senior engineering role might be used to. Instead of taking tasks or projects to completion, you’re now operating at a level of an organization where the expected deliverables get a little hazier and you’re being asked to achieve higher level business outcomes.
So don’t be afraid to shift the time you spend on different parts of this list over time or even do work that seems a bit far afield from your role. If it’s grounded in a desire to produce good outcomes for the business and help your team and it won’t get done without you stepping in, consider it part of the job.
More Engineering Management Posts
This is part of a series of posts on Engineering Management. You can see the whole series here.