[Software Engineering at Google] CH5 How to Lead a Team

6 minute read


The Engineering Manager

  • At the highest level, an engineering manager is responsible for the performance, productivity, and happiness of every person on their team

The Tech Lead

  • The tech lead (TL) of a team—who will often report to the manager of that team—is responsible for (surprise!) the technical aspects of the product, including technology decisions and choices, architecture, priorities, velocity, and general project management

The Tech Lead Manager

  • On small and nascent teams for which engineering managers need a strong technical skill set, the default is often to have a TLM: a single person who can handle both the people and technical needs of their team
  • At Google, it’s customary for larger, well-established teams to have a pair of leaders—one TL and one engineering manager—working together as partners

Moving from an Individual Contributor Role to a Leadership Role

  • Quantifying management work is more difficult than counting widgets you turned out, but just making it possible for your team to be happy and productive is a big measure of your job. Just don’t fall into the trap of counting apples when you’re growing bananas
  • Great reasons to consider becoming a TL or manager
    • First, it’s a way to scale yourself
    • Second, you might just be really good at it

Servant Leadership

  • The symptoms of this disease include, but are by no means limited to, micromanaging, ignoring low performers, and hiring pushovers
  • To avoid this, above all, resist the urge to manage
  • The cure for the management disease is a liberal application of servant leadership, which is a nice way of saying the most important thing you can do as a leader is to serve your team, much like a butler or majordomo tends to the health and well-being of a household

Today’s Engineering Manager

  • Traditional managers worry about how to get things done, whereas great managers worry about what things get done (and trust their team to figure out how to do it).

Antipatterns

  • Hire Pushovers
    • You should strive to hire people who are smarter than you and can replace you
  • Ignore Low Performers
    • How do you effectively coach a low performer? The best analogy is to imagine that you’re helping a limping person learn to walk again, then jog, then run alongside the rest of the team. It almost always requires temporary micromanagement, but still a whole lot of humility, respect, and trust—particularly respect
  • Ignore Human Issues
  • Be Everyone’s Friend
    • Don’t confuse friendship with leading with a soft touch
  • Compromise the Hiring Bar
    • Steve Jobs once said: “A people hire other A people; B people hire C people.”
  • Treat Your Team Like Children

Positive Patterns

  • Lose the Ego
    • Part of losing the ego is trust: you need to trust your team
    • Think about the big picture of what you’re trying to accomplish as a team, and accept feedback and criticism openly; avoid the urge to be territorial
    • Apologize when you make a mistake, and you need to sincerely mean it
  • Be a Zen Master
    • Mediating your reactions and maintaining your calm is more important as you lead more people, because your team will (both unconsciously and consciously) look to you for clues on how to act and react to whatever is going on around you
    • Zen management trick: asking questions
      • The person asking for advice typically doesn’t want you to solve their problem, but rather to help them solve it, and the easiest way to do this is to ask this person questions
  • Be a Catalyst
    • One of the most common things a team leader does is to build consensus
    • drive the process from start to finish, or you just give it a gentle push in the right direction to speed it up
  • Remove Roadblocks
    • You don’t need to know all the answers to help remove roadblocks, but it usually helps to know the people who do
  • Be a Teacher and a Mentor
    • A good mentor must balance the trade-offs of a mentee’s time learning versus their time contributing to their product as part of an effective effort to scale the team as it grows
    • Experience with your team’s processes and systems, the ability to explain things to someone else, and the ability to gauge how much help your mentee needs
  • Set Clear Goals
    • If you’re going to have clear goals, you need to set clear priorities and help your team decide how it should make trade-offs when the time comes
    • Create a concise mission statement for the team.
  • Be Honest
    • Even more common is when a team member asks you something you don’t know the answer to: you can tell that person you don’t know.
    • We strongly advise against using the compliment sandwich, not because we think you should be unnecessarily cruel or harsh, but because most people won’t hear the critical message, which is that something needs to change
  • Track Happiness
    • A good simple way to track your team’s happiness8 is to ask the team member at the end of each one-on-one meeting, “What do you need?

Other Tips and Tricks

  • Delegate, but get your hands dirty
    • If you’ve been leading teams for a while or if you pick up a new team, one of the easiest ways to gain the team’s respect and get up to speed on what they’re doing is to get your hands dirty—usually by taking on a grungy task that no one else wants to do
  • Seek to replace yourself
  • Know when to make waves
    • By waiting, you’re only delaying the inevitable and causing untold damage in the process. So act, and act quickly
  • Shield your team from chaos
  • Give your team air cover
    • Share as much information as you can with your team, but don’t distract them with organizational craziness that is extremely unlikely to ever actually affect them
  • It’s easy to say “yes” to something that’s easy to undo

People Are Like Plants

  • It’s your job as their leader to determine who needs what and then give it to them—except instead of light, water, and fertilizer, your team needs varying amounts of motivation and direction
  • Giving direction is fairly straightforward—it requires a basic understanding of what needs to be done, some simple organizational skills, and enough coordination to break it down into manageable task
  • There are two types of motivation: extrinsic, and intrinsic, and you need to work to increase their intrinsic motivation by giving people three things: autonomy, mastery, and purpose
    • A person has autonomy when they have the ability to act on their own without someone micromanaging them.
    • Mastery in its basest form simply means that you need to give someone the opportunity to improve existing skills and learn new ones
    • Focus on positive effects the products might have on their company, their customers, or even the world. Even for cases in which the product might have a much smaller impact, when the engineers receives a message that the product has helped them personally or helped their business, it inspires the team members to think about ways in which they can make their product even better

Conclusion

  • Software engineering experience itself is invaluable for managers, the most important skills an effective manager brings to the table are social ones

TL;DR

  • Don’t “manage” in the traditional sense; focus on leadership, influence, and serving your team
  • Delegate where possible; don’t DIY (Do It Yourself)
  • Pay particular attention to the focus, direction, and velocity of your team

Tags:

Categories:

Updated: