I’m spending the next 2 months on parental leave helping take care of our 2 year old, newborn and 8 month old puppy, so life is a bit crazy these days. The time away from work though has been a good time for reflection as well, and over the next few weeks I’m planning on sharing a bunch of things I’ve learned about Engineering Management over my first few years in that role.
The first 2 posts in the series are live on the blog now, and I’ve also copied them in full below:
I expect to touch on delegation, hiring, giving feedback, running meetings and more as I go. If the series is interesting to you and there are specific topics you’d want to hear about, feel free to reach out.
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.
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.
In my last post I listed a bunch of different things that engineering managers can do to produce value. Given the sheer number of things that engineering managers can consider doing to help their teams and make an impact, the next question quickly becomes: how do I balance my time and work on the right things? I think of this in terms of maintaining rhythms, finding high leverage work, and following some principles for maintaining sanity.
There are a number of rhythms that I try to maintain every week. For me these include 1-1s with my team, our agile sprint rituals, preparing weekly updates for our VPE and CTO, and dedicated time set aside for strategic work. I focus on protecting these times and as much as possible, but also maintain a pretty high bar for what type of thing I set up as a recurring meeting or obligation. I draw a distinction here between things I do a lot, and things I try to do every day/week/sprint/month. Making it a regular commitment prevents these things from being washed away by busy periods and unlocks the compounding benefits of something that is routinely practicied.
Rhythms are a great fit for activities that are high value but low urgency, like maintaining important relationships, keeping up good information flow, and protecting time for longer term creative work. The important thing here is being selective and as I’ll discuss more below, making sure to review regularly to make sure they’re still a good use of time. Rhythms become an anti-pattern when they get disconnected from value – when you keep doing something that is no longer providing value – a zombie standup meeting or a regular meeting with another team that could just be handled through async communication. I doubt that there is a universal ideal ratio of rhythms to unstructered time, but for me personally I end up having about 20 hours each week that is preblocked for the same activities every week, and that has felt like an appropriate tradeoff between the urgent and new with the consistent and important.
With my remaining time I try to focus as much as possible on high leverage activity. As in my last post I’m borrowing language from Andy Grove’s High Output Management here – leverage is simply a term for an activity’s value relative to its cost in time/effort. So training somebody to do repeating work is often higher leverage than doing it yourself; you pay a one time cost to get an ongoing benefit of the task being completed and growing one of your teammate’s careers. If the term leverage doesn’t speak to you, you can think of the pareto principle and trying to work on the 20% of stuff that brings 80% of the value, or working “smarter not harder”. The point is to figure out what activities are going to have outsized impact and push to prioritize them.
Will Larson has a good guide on identifying work that matters. It’s focused on staff-plus engineers, but the principles apply to EMs equally well. Once you’ve exhausted low effort high value efforts, there’s more value in taking on the bigger problems that will truly impact a company. Swarm on existential issues, but otherwise try to find places to work where there’s room to make impact but you will get support. You can scale your impact by investing in people and nudging or editing other folks approaches without having to own everything yourself or by helping them finish projects that need a bit of help getting to done. And it’s important to see if there are only things that you can do. I can’t phrase this better than Will did so I would highly recommend reading the whole thing on his site. I would add that for managers ultimately all of our value will disappear if we do not have a high-performing team that is able to stick together and make progress over time. I’ve never regretted spending time investing useful time into my team.
Of course in real life, picking high leverage activities is not an exercise where we calmly sit back and pick from a neatly arranged menu of options. Instead as an EM you will be bombarded with requests for your time; meetings with other teams and departments, project meetings, compliance documentation, onboarding new employees, performance reviews, mandatory company trainings, process improvement discussions, status update requests and more. Some of these things will be high value and important, depending on the culture of your company almost all of them may appear urgent. It isn’t a productive goal to only ever work on the most important things at all time. There will always be urgent work that you’ll find you feel you need to do. However there are better and worse ways to handle this flood of urgency.
Effective managers know the importance of saying no to many things in order to focus on the essential. There’s space to grow beyond that though – a no that preserves a manager’s integrity is better than a yes that they fail to follow through on, or one that leads to them working on the wrong things. But even better is if they can work with the people making requests on their time to find ways to make the urgent request smaller, or help get it delegated to people who will grow through the work. Ultimately managers are as effective as their relationships and finding ways to say yes without getting distracted from the most important work is a valuable advanced skill. Of course the temptation can be to trade away these hard decisions and problems by simply giving more time.
Working more hours is the ultimate short term time management power move. It’s also a quick path to burnout. I try to follow a few principles to keep my schedule sane.
First it’s important to reconsider your time commitments regularly, especially any recurring meetings/commitments. Many recurring meetings degrade in usefulness over time, and even ones that should be a bedrock of a manager’s schedule like 1-1s may need to be adjusted as the needs of the participants change. I try to reconsider my calendar as a whole at least once a quarter, and anytime I have what feels like an unproductive meeting or a scattered day I try to think through whether I can make any adjustments to my schedule to improve in the future. This can be as simple as Lara Hogan’s concept of defragging my calendar to put similar things together and clear creative space, or involve reworking a meeting that has gone stale to be more useful for the team – maybe even reducing its frequency or canceling it and replacing it with an async process.
My second principle is that constraints are good. Any EM will have an essentially infinite amount of work. There’s always more training, strategy, preparation and planning that can be done. If you’re still comfortable coding that represents another near-infinite pool of potential contribution. A work till it’s all done approach simply won’t succeed. There is always more. So I try to embrace a schedule and accept that schedule as a constraint to solve for in my work. At points this has been a literal daily stopping time for me – more commonly in my career I’ve simply held a value of being there for my family and protecting family time, as well as protecting my health and time to take care of it. That has meant that at times I have flexibility to pour a lot of time into work, and other times I’m more limited in my total time to devote to work. In each case though I’m able to take a finite amount of time and do my best to optimize it for the challenges in front of me.
Managing your time in more senior roles is hard. You’re not given the direction that you may have gotten used to as an IC engineer, and a lot of the most important work won’t have a timer or anyone yelling at you to get it done. If you’re struggling with this I recommend giving yourself grace. And if you take anything from this piece I hope you remember to protect yourself with constraints so that you stay sane, avoid compromising your integrity by over-committing and ultimately err on the side of investing in people. In 5 years it will be the people you’re interacting with today who are going to have the biggest impact on your career, and as I look at the scope of the rest of my life I expect it to be my impact on people that I remember for better or worse, much more than the results of a project or whether I nailed a certain process for my team.