How to Lead a Team


Hello and welcome to Continuous Improvement, the podcast where we delve into the art and science of building better teams and better technology. I’m your host, Victor Leung, and in today’s episode, we’re exploring the multifaceted world of leadership in software engineering. Whether you’re a seasoned manager, a budding tech lead, or somewhere in between, today’s discussion will shine a light on the critical roles and responsibilities that make or break effective teams.

Leadership in technology isn’t just about overseeing tasks and timelines; it’s about understanding people and the technology they work with. Today, we’re going to break down the dual roles of leadership: the Manager and the Tech Lead, and in some cases, the Tech Lead Manager, who juggles both.

Let’s start with the Engineering Manager. This role isn’t just about people management—it requires a deep understanding of the technical challenges the team faces. Here, the manager’s job is to align the team’s output with the strategic needs of the business, navigating through both their team’s and the company’s needs.

Next, we have the Tech Lead. This person is the technical heartbeat of the team, making critical technology decisions, guiding architectural direction, and managing the project’s technical health. It’s a role that balances hands-on development with strategic delegation, empowering team members to grow their technical capabilities.

In smaller setups, we often see the emergence of the Tech Lead Manager, or TLM, who handles both the people and technical sides. This dual role can be challenging but also incredibly rewarding, serving as a bridge for individual contributors who aspire to move into leadership positions.

Beyond traditional roles, one of the most potent skills a leader can develop is the ability to influence without authority. It’s about inspiring and aligning people who aren’t directly under your command to follow your vision and collaborate towards common goals.

Transitioning from an individual contributor to a leader is another critical journey. It requires a mindset shift from doing the work yourself to enabling your team to execute effectively. This is where the concept of servant leadership comes into play, focusing on serving your team, clearing obstacles, and providing the guidance they need to succeed.

Embracing failure as a learning tool is another key aspect we promote. In an environment that encourages risk-taking, it’s vital to learn from failures rather than play the blame game. This approach helps foster a culture of innovation and continuous improvement.

And of course, let’s talk about the antipatterns—those common pitfalls like hiring yes-men, ignoring underperformers, or focusing too much on tech at the expense of people issues. These are traps that can undermine a team’s morale and productivity.

On a positive note, successful leaders often exhibit humility, respect, trust, and a readiness to put the team’s needs above their own egos. They act as catalysts and mediators, setting clear goals, maintaining transparency, and constantly measuring the happiness and well-being of their teams.

Remember, like plants, every team member has unique needs. A great leader recognizes and adapts to these needs to nurture and grow their team effectively. And beyond extrinsic rewards, it’s about fostering intrinsic motivation—creating a sense of autonomy, mastery, and purpose.

To wrap up, effective leadership in software engineering is as much about managing technology as it is about understanding and supporting people. Whether you’re a manager, tech lead, or a TLM, the principles of humility, respect, and trust are universal keys to your success.

Thank you for tuning into Continuous Improvement. I’m Victor Leung, and I look forward to bringing you more insights in our next episode. Until then, keep leading, keep learning, and keep improving.