My Management Philosophy
I recently left one job and found another. That meant interviews. A lot of them.
I primarily interviewed for engineering manager positions. The interviews tended to be a mix of “tell me about a time when…” and “explain your framework for dealing with…” questions. The latter kind effectively asked me to articulate my management philosophy, and I decided to write it down while I’ve got it fresh in my mind.
What is a management philosophy? Every manager has one, whether they know it or not. It’s simply a manager’s general approach to managing. Some managers have a philosophy that can be summarized as “do it my way or you’re doing it wrong”. Other’s have philosophies like “make me (and the company) look good” or “work hard”.
I might summarize my philosophy as “maximize effectiveness”. That is, I think that my teams can best achieve their objectives when they focus first on making themselves and the team effective at getting work done, and then direct that general capacity to the problems at hand. If you’re familiar with 7 Habits of Highly Effective People, it won’t surprise you to know that my favorite of those habits is “sharpening the saw”.
Now, “maximizing effectiveness” sounds nice in theory, but what does it mean to put it into action? I can’t give you a full answer: you’d have to shadow me at work to see it all. But what I can do is list out a few of the most important ways I operationalize “maximize effectiveness” to give you a sense of how I put my philosophy into practice.
Hire for humility and ownership
I aim to hire engineers who don’t have big egos and want to be part of a team, because no matter how smart someone is, if they can’t work with others, they will be outperformed by the combined efforts of those who can.
I also like to hire engineers who want to own their work end-to-end, from ambiguous ideation to production support. I avoid engineers who only want to write code or architect solutions. That’s because the less ownership engineers take, the more coordination costs they impose on the wider team, while the more ownership they take, the better they are at independently driving good outcomes for the business.
It’s okay to make mistakes, but get it right
Effective teams are high trust teams. Trust requires psychological safety. Psychological safety comes from feeling safe to make mistakes.
Trust also requires trusting that teammates will do what they say they are going to do. If someone says the code will be ready for review on Thursday, it should be ready for review on Thursday.
When mistakes inevitably happen, I don’t play the blame game. I don’t even let the engineers blame themselves. All I care about is figuring out how, as a team, mistakes can be avoided in the future, and then making the necessary changes to reduce the likelihood of future mistakes.
That said, if a team member makes so many mistakes that they can’t be trusted to fulfill their role, or they undercut trust in other ways, then I may have to make the hard decision that the team would function better without them.
Only do 3 things at a time
A person can only do one thing well at a time. When they get stuck because they have to wait on someone or something, they can work on another thing while they wait, so they need at least 2 things to do. That second thing might get stuck also, so it’s nice to have a 3rd thing. If all 3 things are stuck, something is wrong and they need to work on fixing whatever is making all 3 things stuck at the same time.
It’s also hard to maintain state for more than 3 things at once. People become less effective at doing great work as they take on more things. Better to wrap up current tasks before taking on new ones.
Maintain sufficient slack
Some people believe teams are maximally productive when all time is accounted for. I disagree. I think everyone needs slack, or free time in their schedule, to do their best work, because a person without slack doesn’t have the spare capacity to handle surprises, reflect on how to improve, or think up creative solutions to hard problems.
The ideal amount of slack is 40%. This might seem crazy high, but just like we target 60% server resource utilization, we should target the same for people.
People and servers are surprisingly similar, at least with regard to slack. Operating at 80% or 90% or 100% poses the same sort of risks for both: bottlenecks, failures, dropped work, and crashes/burn out.
Remember, though, that 40% slack doesn’t mean 40% of time doing nothing. Uncommitted time should not be unproductive. For example, I do some of my best work when I’ve got the time to put in a little extra effort to do it better, or to pick up small, important tasks that would otherwise be ignored (like browsing LinkedIn to source candidates). Slack just means leaving time unplanned so that it can be filled by whatever most needs doing.
Make realistic promises
One of the hardest things I do as a manager is make promises to other teams. Making promises is hard because engineering work is uncertain, since all engineering work worth doing requires solving problems we don’t know how to solve yet (if it weren’t this way we’d just buy a solution instead of have the engineers build something!).
I find it useful to give time range estimates, like “the project will be done in 3 to 8 weeks”. I write up the ideal timeline, document the risks, and calculate how much buffer we need for unknown unknowns.
I also make sure people hear both numbers! I’ll have them say them back to me if I have to. An easily failure mode with ranges is for someone to only hear the low end and forget the high end, then complain when the low end of the range isn’t met. Make sure that doesn’t happen!
Keep making it better
No person or process is ever perfect. The team, the work, and the market keep changing, forcing everyone and everything to adapt to stay maximally effective.
I like to have regular retrospective meetings with my teams to figure out how the team can operate better. I also like to do this 1-on-1 with each of my team members, usually on an on-going basis as they face challenges in their work. And I carve out time to do it with myself so I can reflect on ways I can invest in becoming a better leader.
As I said, this list is not exhaustive I do in my efforts to be an effective manager. There’s hundreds of things I have to get right to do my job well, and if I’m lucky I’m succeeding at 80% on a given day. And I’m still figuring out how to lead! I’ve been in leadership roles for a few years, but I’m always learning more.
If you have more experience and think I’m getting something wrong, let me know in the comments!