Advice for new engineering managers

I write this after a bout of insomnia, so please forgive any glaring horrors in what you’re about to read. It’s 5am and I’m fuelled by weird EDM, tea, and an overactive brain that’s just spent the last 2.5 hours in bed pondering the future. Part of what I’ve just lain awake to ponder is what I’m about to write down for my future self. If you’re an aspiring engineering manager, especially if you’re transitioning from being an engineer yourself, hopefully you’ll find this enlightening in some way.

I’ve been a professional engineer, at least as far as the opening description on the engineer Wikipedia page goes, for nearly two decades. I count the professional part as having used engineering in some capacity to make a living. Over half my life. At various times in my career, spanning programmer, journalist, programmer again, and now graphics guy, I’ve been responsible for the output of other engineers. But I never really managed; I really just lead, and there are crucial differences between the two.

Recently, I’ve transitioned from engineering to engineering manager. Actual bona-fide manager. The guy responsible for conducting the performance and (part of the) salary review process. The guy solely responsible for hiring new engineers into the two engineering teams I manage. The guy solely responsible for setting the direction of the teams. I plan and shape that direction in conjunction with my own managers, but largely it’s completely up to me what the teams do and how they do it. That applies especially to what they do in the short term, to meet the longer term goals.

I’m lucky enough (or unlucky enough depending on how you feel!) to work for a business that gives me almost unparalleled freedom to do that job. If I need something, or my teams need something, I get it for us. I’m trusted to know what I’m doing, and to know what my teams are doing. I’m managed by an incredible man that I’ve learned an enormous amount from, especially in terms of how he manages engineers. How he managed me! He’s trodden much the same path as me, from bottom-rung engineer to, today, Director of my entire business unit. He’s an actual manager, stripes very much earned, track record very visible by everyone in the company.

With his example to look up to, I thought that when I asked the company for the promotion to formally manage the teams I’d been part managing and part leading for a while, I’d really enjoy it. He seems to enjoy it! The harsh reality is that I’ve mostly hated it, but I’m slowly turning that back to enjoyment. I’m doing it by really learning how to be a great manager, and what I think I’ve learned so far is worth writing down. No doubt I’ll need to refer to this again in the future!

The most surprising part is how much I’ve disliked the formal job title. I’m “Business Development Engineering Manager” now. Previously I was “Senior Business Development Engineer”. Swap Senior for Manager and shake.

The job itself hasn’t really changed that much, but I don’t like the title right now. I was already doing the performance reviews, setting the direction, keeping track of the teams’ weekly output and making sure it tracks well with the general roadmap of things I’ve had the freedom to develop. I was already making sure everyone was having a good time in the office and enjoyed their jobs. I’d already developed the culture. I’d already helped the teams forge good working relationships with other teams in the business. I thought it’d just be business as usual, just a little more hands off on the engineering work I do myself compared to before.

That “little more hands off” has been, at my management’s request, almost total. I’ve found it quite hard to let go. I like developing software. I like writing shaders. I like building and creating things. Nay, I derive core pleasure in my work from building and creating things. In my line of work those things are very varied, which is a huge part of the appeal.

But I’m not supposed to do that much any more. I’m supposed to make sure the much smarter, younger, hungrier and much more talented members of the teams are doing that work. My job now is to make sure they all point in the right directions at the right times, equipped with the right tools for the job, shielded from office and business politics as much as possible, so they can focus without interruption and do awesome work.

For my teams, I’m a fully-functioning shit umbrella with a magical tool-belt and a big sack of money. Don’t laugh, that’s your role too if you’re a manager of engineers.

Let’s go through each bit in turn, starting with making sure they all point in the right direction. Managing engineers is like herding cats, don’t let anyone tell you differently. Engineers, and I’ve learned this not just at Imagination but at almost all points in my career to-date — not least because I’ve been one myself for a long time! — are very easily distracted, especially by new things. Those new things are often fuel for development, innovation and gaining new knowledge, but they’re still distractions. Keeping teams of engineers all pointed toward the same goal, while knowing they’ll see shiny interesting things along the way, is not always a matter of just managing the human beings (the, “hey, get back to work”, bit). It’s often more a matter of managing how often they pick up and examine the shiny things and how long you let them distract.

The best way to do so is show them the shiny things yourself. Keep an eye on general levels of concentration and energy in the team. If things are ebbing, and they will naturally and always ebb, lob a shiny thing into the room for them to check out. If you’ve ever heard of 20% time — Google do it — that’s mostly lobbing shiny things into the room. The trick is not to try to minimise the distraction or get it to trend to zero; distraction can and will happen regardless, human beings can’t focus for a full working day on a single task. Your job is to manage it and harness it if you can.

Sounds fine, right? My problem has been knowing that the shiny things aren’t really for me anymore, and I can’t really play with them the way I used to. New programming languages, techniques, methods, books, papers, conference videos, side projects; I need to be aware of everything, lest I have no clue what drives my teams (and me to some extent), but they’re not for me to consume in the same way as I used to. Letting go of that continues to be a hard lesson to learn.

A big part of managing the teams’ distraction, so they can focus, is being the shit umbrella. That’s often combined with making sure they have the right tools and resources they need to get their job done. Other teams, and frustratingly other managers in the same boat as you, will often have no idea of the work going on in yours, so they’ll make requests of your people devoid of any priority other than YESTERDAY YOU IDIOT. Passing that on immediately without any pushback, filtering, priority resetting or planning is the very essence of a terrible manager. Your job is to make sure the work flowing through the team happens at the right times, in the right order and with the right people doing it. Context switching for engineers is incredibly expensive. You were one yourself once, remember what it was like when your manager gave you no warning of SUPER HIGH PRIORITY DROP EVERYTHING RIGHT NOW work.

Obviously you can’t do that 100% of the time, but you have to do it as much as possible. My struggle is that I’m sick and tired of doing it. It feels impossible to plan for anything because priorities and requests change every day. Some of that is the nature of the work so I allow for it. Quite a lot of it is completely unnecessary on behalf of the person requesting the work. No compromise can be reached. Everything must be dropped immediately. No I can’t put it off until tomorrow even though it’s late in the day. I’m still figuring out how to deal with that properly, other than to work with my managers to help protect me and my people at a higher point in the structure.

It’s also your job to make sure your people have the right tools they need to do their job. Some of that is acquiescing to requests for stuff that on the face of it doesn’t need to be bought or otherwise acquired. You have to instil it into them that you trust them to only ask for what they definitely need. You’ll always get requests for stuff that isn’t strictly needed (“I want to try a left-handed mouse despite having used a right-handed mouse for the last 97 years!"). Doesn’t matter, make it happen. Often it’s not physical equipment or anything that consumes the company’s money. If someone wants to research a new way of doing something because they believe it’s going to be a net win, even if you believe you can see the failure a mile off, let them try (within reason of course, keep an eye on everything). Build trust there. Over time they’ll only come to you with true conviction for new resources and time to learn and experiment.

What they don’t teach you as an engineer that’s used to asking for that stuff themselves, that’s now a manager that needs to get other people that stuff and make it happen, is that there’s always someone along the way that questions it or even resents it. “Do your team really need calibrated 2560x1440 monitors?”. “How come you all have custom computers and not the crappy company standard?”. “Do you really need Lego in the office?”. Yes! Happy engineers that know their boss will get them what they need (and sometimes what they want: minifigs!) are a clear win for the company and I’m sorry your manager doesn’t get that. First world problems I know, but it’s really draining having to justify it at all.

Sometimes your team will need something legitimately expensive that requires justification all the way to the CEO to get signed off. Doesn’t matter, make it happen. In my case that means going through 4 guys who’ve been through the company’s toughest times when it didn’t have any “cap” to “ex”. All staring at me through questioning eyes, wishing they didn’t have to play devil’s advocate. They ask the obvious questions, even though they don’t need to. “Can it be made cheaper?”. No, I already made it as cheap as possible, obviously, precisely because I know I’d have to justify it. “Run through the benefits again for me”. I know you’re asking again so I have one last think about it, but I thought about it 20 times before I wrote the proposal in the first place. JESUS. But that’s corporate life. There’s a budget. If you want to spend the bigger chunks, be prepared. Need a new employee on the team? Start praying, they’re the most expensive thing to buy of all.

What they don’t teach you as an engineer is just how much time that stuff takes. Paperwork takes serious time, and nobody can really help because often you’re the only one in the company that even knows where to get the stuff you need, never mind justify it. Paperwork is time away from real work, whatever you believe that to be. More importantly, and circling back to the letting go part, it’s time away from the engineering work you still want to do. Now that just feels even further away. I’m learning to see the enjoyment at the end of the paperwork portions of the job. Watching the team put a new piece of equipment to fantastic use, as they’d hoped, is great. For me, going through the recruitment process to get another hand on deck to help achieve the mission is so tedious and soul crushing at times, but the end result is worth it.

Those abject frustrations, and there are a great many more, can all be summed up for me in a few blurbs, and it’s that stuff I’m trying to focus on, to finally enjoy the job of Actually Being The Full-Time Manager Now Because It’s In The Job Title So It’s For Real.

Let go of the engineering you used to do as much as possible. It’ll stop you focusing on your people, and they’re fundamentally more important than anything. They’re human beings, with feelings and expectations and desires and drive and commitment and passion. Focus on them as much as you can as soon as you’re promoted, so those things are all still there when you finally get round to being the manager, because trust me, you won’t get round to it immediately. It’s really hard, but let most of it go, and relish the bits you still get it do.

Make things happen for your people. Embed deep two-way trust. You trust them to only ask for what they need. They trust you to always make it happen. Make it happen as quickly as you can. If there’s delay, communicate it to them. Keep them in the loop and show you’re still fighting for them. Companies hate allocating resources to stuff, financial or otherwise. Doesn’t matter, always make it happen. Take joy in seeing them use the resources to great effect and achieve your mission.

Be a really big umbrella. Corporate politics and office politics are barely games for you to play. They’re certainly not games for your people to play. Keep political distraction out of their way almost entirely. Let legitimate business distraction happen under your control. Make sure everyone knows you protect your people. Do it fiercely and don’t let your people be pushed and pulled by others.

Above all, don’t let “Manager” go to your head. Yes you can get angry and animated to herd the cats, if it’s necessary. Yes you can throw your weight around because you are the boss. But use those tools in emergencies only. Happy people are encouraged, not demanded of and shouted at. They work with you, not for you. Really, you (I!) work for them. I’ve had to learn that the hard way recently. If you work for me, I’m sorry and I’ll be better.

I’ve no real idea what I’m doing because nobody has formally taught me how to do any of this, I’ve just learned through observation, but what I’ve written above feels right.