How to Lead a Team
Overview
This blog post explores the “How to Lead a Team” chapter from Google’s Software Engineering book, which tackles the challenges of leading software teams in a modern tech environment. This insightful chapter breaks down Google’s approach to engineering leadership, from managing people and technical decisions to transitioning from a coder to a leader. Let’s examine the key lessons we can extract from the software engineers at Google and see how we can apply them in our own software engineering team!
Summary
In software engineering, effective leadership goes beyond simply managing — it involves empowering, supporting, and guiding a team with humility, trust, and respect. This chapter covers essential leadership strategies for fostering a productive team culture, from tracking team happiness to encouraging growth and autonomy. Leaders should balance delegation with hands-on involvement, helping team members advance without micro-management while shielding them from unnecessary organizational chaos. By focusing on both individual and team development, good managers inspire motivation through autonomy, mastery, and purpose, creating a workplace where engineers thrive and innovation flourishes.
Managers and Tech Leads
This person is responsible for the performance, productivity, and happiness of every person on their team, but at the same time making sure the needs of the business are met. But there is always some backlash because the needs of the business and the needs of the team may sometimes conflict. The tech lead is responsible for the technical aspects of what is being worked on. The tech lead will usually work hand in hand with the engineering manager to ensure that the team is adequately staffed for their product and that engineers are set to work on tasks that best match their skill sets and skill levels. This a fusion between the Tech Lead and the Engineering Manager. Although this person works in a more senior role they are often someone who was previously in an individual contributor position.Tech Leads
Tech Lead Manager
Moving from an Individual Contributor Role to a Leadership Role
Think about the team project for this course — leadership isn’t always volunteering to be the team lead. Sometimes it just happens naturally, like when you find yourself organizing the GitHub repo or messaging everyone to coordinate late-night debugging sessions. Tech folks call this “manageritis” — that moment when you realize you’ve accidentally become the go-to person for decisions and team conflicts. It’s less about the title and more about that natural shift from coding to helping your classmates work better together. Despite these valid concerns, leadership roles offer unique opportunities: The key to effective technical leadership isn’t about control — it’s about service. The best leaders: Discussion Question: Think about your experience leading a course project in this class — what’s one “invisible” task you did as a leader that was important but hard to measure like counting lines of code?“ What do you think is expected of a manager at a modern software company? How might being a manager at a software development company be different than managing at a factory? Often times trusting your employees is the best way to go about management. Failure is an option. Allowing people to be themselves leads to a more confident environment where people are not afraid to take risks. “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).” - SE Book As a manager what are some traits that you would look for in hires? Let’s examine some of the positive patterns and anti-patterns that you might see in the leadership of a software engineering team. Hire Pushovers: It is much easier to hire people that say yes to everything. These are not the people that will push the team to be the best. You need ambitious and creative people on your team to continue to challenge ideas and push the standard. Ignore Low Performers: It is important to note that it is often your job to hold people accountable. This sometimes means that you have to have hard discussions and sometimes fire people. Ignore Human Issues: There are two main categories when it comes to software development teams: social and technical. It is important to note that everybody is human and has things going on outside of their work. Be Everyone’s Friend: Since it is tempting to have every member of our team like us, a technical leader may want to be the friend of every member in the team. Why might this be an issue? Compromising the Hiring Bar: It is often that people are hired out of necessity. This can be an issue because if an employee is not returning value to the company or team then most of the time you would be better off waiting to find the right candidate. Lose the Ego: How could a manager’s ego affect the work environment? Be a Zen Master: Remaining calm and not panicking can be huge for your team. Along with this you do not have to over communicate. Oftentimes the people working on a specific project will know more about the intricacies than you do. Trusting them to do their job and not micromanage is important. Be a Catalyst: Help to inspire ideas and solutions. One of the best ways you can go about this is to get a voluntary consensus. This can lead to ideas and perspectives being shared ultimately leading to more efficient solutions. Remove Roadblocks: As a manager you might have resources that other people in your team do not. Make sure the team is open with you about their problems and know that you are willing to help. Be a Teacher and a Mentor: While it is important that you are helping your team it is also important to allow them to work through issues on their own. Set Clear Goals: Having everybody on the team moving in the same direction is one of your main jobs. Having a clear vision of what needs to be accomplished can greatly increase production. Be Honest: It is okay to not know everything. It is also important to be able to give feedback. A strategy to implement for this would be the compliment sandwich. Track Happiness: Giving recognition and complements is just as important as telling someone they did something wrong. Tracking happiness can keep a lot of good employees around in the long run and make the overall work environment more enjoyable.Leadership Resistance
Why Consider Leadership?
The Secret: Servant Leadership
Engineering Manager
Positive Patterns and Anti-patterns
Key Takeaways
The key takeaways from this chapter is that exceptional leadership involves empowering and enabling a team rather than merely directing them. Effective leaders delegate thoughtfully, offering both guidance and opportunities for team members to grow. Monitoring happiness and supporting team members’ personal and professional goals leads to a more motivated, resilient team. Additionally, balancing transparency with shielding from external chaos helps teams stay focused and productive. Finally, the pillars of autonomy, mastery, and purpose are fundamental to increasing intrinsic motivation, fostering a culture where each team member feels valued and invested in their work.