Recently, I’ve been reflecting on my last few years in an Engineering Director role and how I would define the role today. Here are a few things I had to learn, mostly the hard way, by screwing it up at first.
1. Communicate Simply Based on your Audience
You will need to spend most of your time interacting with other cross-functional leaders, practice describing engineering problems as simply as possible with the direct business effects baked into the conversation. “We need to move our data queue over to AWS because it is currently super expensive and insecure.”
2. Say No
Saying no doesn’t feel great but it’s what everyone expects from you, at least in my experience Engineering tends to be the first leader to think through every critical detail of a project and explain what’s hard or things we shouldn’t do. Say no to your boss, your peers, your team, to projects and distractions, to suggested promotions and firings, say no. Say yes to whatever is best for the business.
3. Repeat Important Things
In every Engineering meeting you run, remind yourself that your team is only going to take away one sentence from everything you say. Make sure it’s the right sentence. Repeat everything that’s important constantly. Learning how to ensure the correct take away is hard and requires iteration. Ask people in 1x1s what they took away from an important meeting, it will surprise you.
4. Your Job is More Product than You Think
Engineers and Product can sometimes have a hard time getting along, it’s built in to the incentivization structure. Product will want to ship and everything would be better if it was done yesterday. Maybe it’s unfair to pin this on product, think about how much better the business would be if everything was magically done yesterday. It’s your job to help them understand the trade-offs. People will be upset if you miss a deadline, they will be more upset if you release something shitty.
Treat Product Managers like members of your engineering team and sometimes that means sitting them down to have a hard discussion. Always let your Product counterpart (Director of Product) know you did this, but don’t wait for that person to do it for you. Your miles may vary on this one, the right way to approach it depends on your relationship with your peer but at the end of the day, don’t let a situation fester because you are waiting for someone else to deal with it. One Product person can destroy a whole team of engineers.
5. You are the Boss
Everything you say will be scrutinized for secret meaning so try not to make glib or overly dire remarks. You are also the man, the face of leadership and unpopular decisions. You will be frustrated with your peers or boss or decisions but your team can’t see this. Treating your direct reports like peers or friends that you can bitch to is the quickest way to dysfunction. You have to be honest without undermining your boss or company. This is hard.
6. Don’t Protect People
Or, strategically don’t protect people on your team who are ready to handle it. Your most senior engineers and managers should be able to sub in at the leadership table for you. There are others on the team who can’t affect things and will just have anxiety if they know everything you do about something, they don’t need to know. You job is not to be a shit umbrella but rather to prepare people to handle shit.
7. Code is Low Impact
You don’t have time to code on mission critical things anymore, it’s tough to let go. If you have 2 hours and you think you want to code, first make sure your todo list is done and that you have tracked down any gut feelings about things that you feel may be headed off track. These will keep your team way more effective than a bug fix you hack together. Yes, figure out ways to stay sharp and technical as much as possible, but congratulations you are in management, coding skills will atrophy.
8. Be Honest
As long as you keep being honest with your team they will be surprisingly resilient to everything that you throw at them. This means, be vulnerable when you are anxious or don’t understand, be candid and tough with someone who needs it, be caring and kind with someone who needs it, and be yourself, nobody else will lead exactly how you do.