Ensure every report is aware of the top priorities of the team, organization and company.
No task is beneath a manager. Get your hands dirty even if it's not coding:
One on ones
Never skip one on ones. It's the best platform for receiving and giving feedback. Most teammates value it and usually when they don't it's because they haven't seen one conducted well.
Aim for weekly one on ones.
Focus on 5 topics:
Predictability: create routine, set expectations, normalize change.
Ownership: offer options, clarify ownership, give more responsibilities.
Purpose: clarify the big picture value and importance of their tasks.
There isn't one best management style. Figure out how someone wants to be managed in your initial one on one:
What did you like about your previous manager? What didn't you like?
What do you like to see from a manager?
One on ones where the report is also a manager are typically more "business" where the focus is on strategy, team health and project alignment.
Coaching
Default to open questions: ask questions starting with what, how, who instead of closed-ended ones like do, have, is to invite conversation and give ownership over a problem.
"What questions do you have?" is better than "Do you have any questions?".
"Why do you think this is the right approach?" is better than "Is this a good idea?".
Respond with "What are your thoughts so far?" when asked "What should I do?"
Summarize what the person is saying so you're both on the same page and are pinpointing the problem.
"It sounds like there are two issues, x and y. Which should we focus on first?"
Figure out how to make the meeting productive:
"What's the next step?"
"How should we track this?"
Feedback
Be prompt, ideally providing feedback the same day of the event that prompted it.
Get buy-in about providing feedback and reduce mystery by giving context:
"Do you have 10 minutes?" ⛔️
"Do you have 10 minutes to talk about this morning's stand up?"
"Can I share some thoughts with you about how we've been working together?"
Don't pad negative feedback by beginning with compliments; it gives mixed signals.
Be specific even if it's positive feedback.
"Good job!" ⛔️
"I like the initiative you took to reduce the service's memory footprint. It encourages me to give you more ownership so that I can focus elsewhere."
Focus on data and not behavior:
"I noticed you didn't address any of the comments made in your last three PRs"
"I noticed that you didn't pick up the ticket I asked you to do"
"I noticed your last feature release didn't have any tests"
"Your code is buggy" ⛔️
"You are always late" ⛔️
Talk about why this matters and who it's affecting:
"I mention it because it's important we work as a team"
"I mention it because the ticket I assigned you is critical to this quarter's roadmap"
Figure out together how to fix the problem:
"What do you think of our process?"
"How do you see it?"
Agree on an action plan:
"How do we ensure we don't miss a ticket due date next time?"
"What are a couple of actions you could take right now?"
"What are our action items?"
Highlight positive patterns (remember to be specific).
"It's great to see you teach X about Y so that they're as proficient as you. That's a trait of a senior engineer."
Replay instinctive reactions to help frame the conversation:
"My initial reaction to your proposal is..."
"Here's what I would do" is better than "Here's what you should do"
"When you did X, I felt Y"
Thinking strategically
What would you do with one more person?
How is your team moving the needle? Are you focusing on the right things? How do you know the features you're building will benefit the customer?
What are your product's mission and tenets?
What are the company's top priorities this year? Where should the company be three years from now?
What are your "rocks" and "pebble" projects this quarter?
What company annual goals is your team driving and in what way?
If you were to get promoted, who from your team would take your place? What skills or experience does this person need to acquire?
What are your team's pain points? How can you move 2x faster?
Reversible decisions can easily be changed. Examples: changing stand up time, contributing guidelines.
Irreversible decisions cannot be changed without significant rework. These decisions should take
longer and be documented and discussed. Examples: architecture changes, language decision, data models.
Whenever there is disagreement, focus on the intended outcome of the decision and make sure the team
is aware of your reasoning.
"While database X is better, I want us to standardize on one stack so that it's easier to maintain."
If someone disagrees with a reversible decision, set a date to revisit that decision with the team.
Ideally you also have metrics to define the success of that decision.
"I understand your concerns. Let's revisit this in a month and see where we stand."
"We're tracking X now, let's revisit next quarter if it improves with these changes."
If someone disagrees with an irreversible decision, give them the opportunity to present their case.
Regardless, everyone should be aware the decision is ultimately yours and the team needs
to disagree and commit wholly to the decision made.
Document your decisions so that you can refer to why they were made and the tradeoffs your team faced.
"Don’t defer decisions to meetings. Make decisions on the spot, communicate it over long-form writing, and use the meeting to discuss it." – Erik Bernhardsson
Avoid sync or recurring meetings with no standing agenda.
Always end a meeting with actions, owners and timing, so it's clear what next steps are.
For staff meetings, go around the table and ask reports what their biggest concerns are.
Many managers want to attend executive staff meetings, as it makes them feel needed and puts them in the know. I made use of this desire by setting a price of admission to the meeting: you had to fess up to at least one thing that was 'on fire.'" – Ben Horowitz
It's worth occasionally asking the meeting attendees whether the meeting is productive or how can it improve.
Before sending an invite, ask yourself why this meeting can't be communicated over email.
Hiring
If you can 'hire tough,' you can 'manage easy' – Sue Tetzlaff, The Employee Experience
Hiring is the most important decision a manager makes.
What to look for in senior engineers:
Owner. Takes ownership of a problem even when it's not 100% their responsibility; understands the why.
"Tell me about a time when you took on something significant outside of your area of responsibility. Why was it important? What was the outcome?"
"Tell me about a time when you made a hard decision to sacrifice short term gain for a longer term goal."
Handles ambiguity
"Can you tell me about a time when you had to solve an ambitious problem? Why was the problem important?"
"Can you tell me about a time when you had to make a decision without complete information? What was the situation? What risks did you take? Why did you make the decision you made?"
Team player. Takes feedback well.
Communicator. Can articulate ideas at different levels.
"Describe to me something you know well."
"You mentioned X in your resume. Explain it to me as if I've never come across it?"
Teacher. Enjoys growing other engineers. Especially important for senior-level engineers.
"Tell me of a time where you helped someone in your team grow."
Deep diver. Digs a level deeper to understand what's happening under the hood.
"Tell me about a time you were trying to understand a problem on your team and you had to go down several layers to figure it out."
Simplifier. Simplifies problems instead of just hacks at things and adds tech debt. Does the person have a build vs. buy mentality.
"Tell me a about a complex problem that you solved with a simple solution."
Missionary. Interested in company's mission or technology.
"Explain to me what your current company does and why it's important."
"What interests you working at [COMPANY]?"
What to watch out for:
Short tenure at companies. If a candidate typically stays at companies for less than a year, ask them why. There might be perfectly valid reasons or it might indicate a pattern that the person is difficult to work with.
Why did you only work at X for less than 1 year?
Menu of technologies. Resumes that just list technologies used instead of problems solved may indicate person may not be thinking big picture. Also a typical trait of junior engineers.
Long resumes. More than 2 pages may indicate the person has difficulty distilling what's important. That being said, there can be culture reasons for long resumes. For example, in some European countries, resumes are encouraged to be long.
Onboarding
Having a good onboarding process is crucial to the success of your team. It ensures new members are contributing as early as possible and are assimilated into your processes and culture.
An onboarding process is successful if your new team member can contribute a bug fix on their first day of joining.
Onboarding material:
Team mission
How is your team moving the needle for the customer?