Welcome to engineering management. It’s fun, it’s
exhausting, it’s rewarding — but most importantly
it’s new! What worked for you before won’t work
now. You’ll have to acquire a new set of skills, and shed some
bad habits in the process. Here is a short guide to get you started.
- Attract, nurture, coach, and retain talent. Talk to engineers to
tease out concerns early, then fix them if you can.
- Communicate to every engineer the next most important issue for
them to work on.
- Be the tiebreaker when the development team can’t reach
- Be the information hub. Know what every engineer is working on, and
help connect the dots that wouldn’t otherwise get connected.
- Provide administrative support. Schedule issues, coordinate
releases, and make sure the bureaucratic machine keeps ticking.
- Enforce behavioral and performance standards. Fire bullies and
- Personally fix bugs and ship features. You have to write code to
remain an effective tiebreaker, but that’s where your coding
- Supervise the quality and volume of people’s work. Software
engineering isn’t an assembly line. If you find yourself
supervising too often, you haven’t attracted the right people
or given them the right incentives.
- You’re the one who makes hiring and firing
decisions. Everything that happens on your team is your
- Engineering is a seller’s market: people work for you because
they believe in you. Access to their talent is a privilege.
- Authority isn’t bestowed freely. It’s earned by making
good decisions over time.
- Don’t make decisions unless you have to. Whenever possible,
allow the team to explore ideas and make decisions on its own.
- Do make decisions when it’s necessary. Few things are as
demoralizing as a stalled team.
- Don’t shoot down ideas until it’s necessary. Create an
environment where everyone feels safe to share and explore
ideas. The folks writing the code have a lot of information you
don’t. Rely on your team and you’ll make better
- Building intuition on how to make good decisions and cultivating a
great relationship with your team will get you 95% of the way
there. The plethora
conceptual frameworks for
organizing engineering teams won’t make much difference. They
make good managers slightly better and bad managers slightly worse.
- Management happens to be prestigious in our culture, but it’s
a skill like any other. Prestige is a distraction —
it’s fickle and arbitrary. Guard against believing
you’re any better than anyone else. The sooner you get over
prestige, the sooner you can focus on doing your job well.
- Management also attracts scorn. Ignore it — the people who
believe managers are useless don’t understand the dynamics of
building a winning human organization.
- If you feel something’s wrong, you’re probably
right. Don’t let anyone bully you into ignoring your
- If you find yourself blaming someone, you’re probably
wrong. Nobody wakes up and tries to do a bad job. 95% of the time
you can resolve your feelings by just talking to people.
- Most people won’t easily share their emotions. Have frequent
informal conversations, and tease out everything that might be
wrong. Then fix it if you can.
- Your team looks to you for leadership. Have the courage to say what
everyone knows to be true but isn’t saying.
- You’re paid to discover and fix cultural problems your team
may not be aware of. Have the courage to say what everyone should
know but doesn’t.
- Hire great people, then trust them completely. Evaluate performance
on monthly or quarterly basis, then fire if you have
to. Don’t evaluate people daily, it will drive everyone
(including you) insane.
- Most intellectual arguments have strong emotional
undercurrents. You’ll be dramatically more efficient once you
learn to figure out what those are.
- Don’t judge too quickly; you’re right less often than
you think. Even if you’re sure you’re right in any
given case, wait until everyone’s opinion is heard.
- Once everyone is heard, summarize all points of view so clearly
that people say “Thanks, I wish I’d thought of putting
it that way.” List any points of agreement with each view,
and state what you’ve learned from everyone. Then make your
- Once you’ve made your decision, enforce it. Don’t let
the team waste time going in circles to placate disproportionally
- Reopen the discussion if there is significant new information.
- When disagreement gets personal or people don’t accept
well-reasoned decisions, it turns into conflict.
- Most conflict happens because people don’t feel heard. Sit
down with each person and ask them how they feel. Listen
carefully. Then ask again. And again. Then summarize what they said
back to them. Most of the time that will solve the problem.
- If the conflict persists after you’ve gone to reasonable
lengths to hear everyone out and fix problems, it’s time for
a difficult conversation.
- Have difficult conversations as soon as possible. Waiting will only
make a bad situation worse.
- Never assume or jump to conclusions. Never demonize people in your
mind. Never blame, yell or vilify.
- Use non-violent
communication — it’s the best method I know of to
critique people’s behavior without offending them. It smells
like a management fad, but it really works (I promise).
- Have the courage to state how you feel and what you need. People
are drawn to each other’s vulnerability but repelled by their
own. Vulnerability isn’t weakness.
- Expect people to extend you the same courtesy. If someone makes you
feel bad for stating your needs and feelings, it tells you more
about them than about yourself.
- People will push and prod to discover your boundaries. Knowing when
to stand back and when to stand firm is half the battle.
- Occasionally someone will push too far. When they do, you have to
show a rough edge or you’ll lose authority with your team.
- A firm “I’m not ok with that” is usually enough.
- Don’t laugh things off if you don’t feel like laughing
them off. Have the courage to show your true emotions.
- If you have to firmly say “I’m not ok with that”
too many times to the same person, it’s your job to fire
- Unless you’re a sociopath, firing people is so hard
you’ll invent excuses not to do it. If you’re
consistently wondering if someone’s a good fit for too long,
have the courage to do what you know is right.
- Don’t let people pressure you into decisions you don’t
believe in. They’ll hold you responsible for them
later, and they’ll be right. Decisions are your
- Believe in yourself. You can’t lead a cavalry charge if you
think you look funny on a horse.
Thanks to Michael Glukhovsky, Michael Lucy, and Alex Taussig for reviewing this post.