6 Tips for New Engineering Managers – Hakuna Automata
Hello, new engineering manager! If you recently stepped into the role from a developer position, the dramatic change in your day-to-day might have you feeling like the floor just fell out from under you. I’ve been there.
Out of 17 years working in software, I’ve only spent the last 2 of them managing the engineering team at HelloSign. That’s not very much. In fact, if I draw out each year as a tiny box, it looks like this:
During that time I kept notes to track things like meeting minutes, ideas from management books, and lessons learned from challenging team interactions. What worked? What drained me? What blew up in my face? Over time, these notes became a source of advice to myself. I recently dug through them and present to you 6 tips that have been particularly helpful:
- Write down your decision making process
Brace yourself because you’re about to live your life in meetings. These include interviews, 1-on-1’s, annual reviews, HR disputes, design reviews, sprint planning, and more. A manager does one of two things in a meeting: makes a decision or shares information. When you make a decision, write down any related details, including as the date, time, who was present, what was said, and why you made the decision. The day will come when you need to give critical feedback to a team member during their yearly performance review or defend a decision you made in a critical situation, such as firing someone (*shudder*). Having your decision making process in writing will SAVE YOU. - Commit yourself to your team daily.
As a former developer, your first instinct in times of stress or exhaustion is probably to go back to your safe space of writing code. That’s not your job any more. In fact, whenever I found myself going back to this mode, the team would suffer somehow. I’d forget to check in with them on an important project or share necessary information. Make a daily effort to remind yourself that your job is to focus on your team. Are they making progress on their goals? Do you even know what their goals are? Are they checked out? Are they struggling with a technical issue you can help with? Consciously fight the inclination to return to writing code and instead think about what your team needs from you. - Stick up for process.
If your team is large enough that it needs an engineering manager (you!), it’s large enough to need well defined processes. As developers, we tend to loathe process because it feels like it’s slowing us down. But as your team grows, good process will ensure things work without continual oversight. It sets boundaries and establishes agreements on how things are communicated. Good process is the interface you build your team around that lets you to inject loosely-coupled developer dependencies (… ok, maybe that was a bit of a stretch). Regardless, don’t let your teammates off the hook when they deviate from dev processes you help establish. Call them out on it and work with them to smooth out kinks in your team’s processes. Everyone will be more efficient, including you. - Schedule time to plan.
AKA “Plan to plan.” No, I’m not joking! When I look back on good management days versus bad ones, the good days are ones where I was well prepared. Schedule 5 minutes every morning to plan for the day. Write down 3 things you’re going to get done. Review your meeting agendas and jot down questions you might have. Schedule 15 minutes every Monday morning to plan for the week, and 30 minutes on the 1st to plan for the month ahead. Block these out on your calendar and make them recurring. - Eliminate distractions.
Remember how I said that half of a manager’s job in meetings is to make decisions? The other half is to share information. You’re basically an information router and filter for your team… and you’re going to be getting a LOT of it, from emails to HipChat or Slack to text messages to PagerDuty. That means that as a manager you’re only as good as the information filters you set up (#GIGO). Turn your email inbox into a todo list. Everything coming in should either be actionable, delayed, or archived. Unsubscribe from lists ruthlessly and set up filters/folders/groups to save time processing inbound emails. Turn off all phone app notifications. Eliminate chat notifications. I may write more on this in a future post, this has been so effective for me. - Say “No.”
I’m still struggling with this one. As a developer, you learned to make magic happen. Your job was to find solutions to the trickiest technical problems. As a manager, this will make an about-face as you are now expected to do things that require saying “no,” like pushing back on scope creep, prioritizing what the team works on, and protecting them from context switching. Additionally, you are now the face of your team to the rest of your company. External requests will come in on a regular basis, but you only have so many hours in a day and your calendar is full. You need to say no for your team’s sake and for yours. I’ve found three helpful ways to do this. The first is to say, “No, not right now.” The second is to say, “Ok, help me prioritize that against this other task we need to do.” The third and most powerful response is to delegate — you’re a manager, your wingspan is as wide as your team!
Revisiting these tips is something I found helpful to do on a regular basis. I should mention that I only have this list because at some point, I followed each of these tips. The list is, itself, a product of following the tips above.
Best of luck in your new adventure as an engineering manager. It will be a challenging change of pace and I hope you find these tips useful. Please share any others that work well for you in the comments.