Way back in time, while I was still sitting at a desk at my finance job, I started subscribing via RSS to a gentleman pseudonymed rands. He wrote classics about topics like the FrienDA, Secret Titles, and Shields Down. There was a lot of content about Engineering Management before I knew what one was or did, before I even knew that I would make the jump to software engineering, and well before I knew that rands would be my great-grandboss.

Today, as an Engineering Manager I still am not sure what one does (or that it even does a thing), but this tweet from @rands last week made me think I should write down what I think a great leader should focus on.

Clear the Minefields

In software engineering we often talk about blockers. You need to push your new code out, but Minh in ops hasn’t provisioned the servers yet. Managers are notoriously good at filling their calendar with meetings, but sometimes these meetings are the things that are important so that the people that depend on you can keep doing their jobs. You try to stay a step ahead of your team and make sure they don’t have to jump in on things they don’t need to. Other bombs are hidden in bad hires. Interviewing can be tiring, time consuming, and arduous, but getting this wrong is so expensive. And then there’s the regular day to day… wiping whiteboards, pulling design prototype print outs off the wall, picking up candy bar wrappers off the ground. You’re a servant of the people.

Regardless of seniority, every good manager will take a bullet for you.

Know Your Customer

To run a successful business, every manager in your organization from top to bottom has to know what makes the thing go. In startup companies, survival often means making sure you reach product/market fit. This means that every leader in the company needs to know where to dedicate time and energy, and maybe more importantly, when something just isn’t working. In established companies, it becomes even more important to not make assumptions, and to iterate, validate, and refine your output.

Regardless of seniority, every good manager will know what makes a great product.

Keep the Trains on Time

Humans are terrible at estimation. Humans tasked with writing software seem especially ill-suited for this task. At the end of the day, there will always be the group of things that you don’t know you don’t know. Experienced managers account for this, are mindful of delays on the assembly line, and have a watchful eye that sees when things aren’t running as smoothly as they can be. And when things start to go off the rails, as they are wont to do, a great manager knows what is a must have, a nice to have, and an ain’t gonna have.

Regardless of seniority, every good manager will ruthlessly prioritize.