Thoughts on Leadership Roles
As you progress in your software engineering career, your leadership skills become increasingly important. Even if you never transition to a management position, you are still likely to find yourself leading others whether that be formally through a role as tech lead or informally as a senior member of your team or company. While there are many different types of leadership there are five primary roles that you'll play.
Teacher. You'll directly instruct someone else on what they need to do. In this role, you are guiding people, step-by-step, to learn new skills and concepts. This might involve teaching a class, giving a talk, writing a blog post or book, or even pair programming with someone to help them through a difficult task. Teachers hold the hands of their students to help them develop.
Mentor. You'll indirectly help someone with what they need to do by engaging with them. In this role, there's less hand-holding than in the teacher role and you instead help by giving advice. You might share stories of your own experiences or connect them with resources or people who can help. Mentoring is a hands-off role where you act as a sounding board and resource to help point people in the right direction but don't get directly involved in the work.
Coach. You'll directly help someone by asking them to think deeply about the task. Where teachers will give you the next step, coaches instead challenge you to discover the next step with their guidance. Coaches don't give step-by-step instructions, instead, they ask questions to help change thinking. Coaches inspire action through discussion with the end goal of developing certain skills in their coachees.
Supervisor. You'll oversee the work that someone else is doing to validate that it is done correctly and on time. While this role traditionally falls to a manager, there are certainly times when tech leads are required to supervise their teammates. Supervising means pointing out when expectations are not being met and holding people accountable for meeting them. Practically speaking, this most often happens for tech leads during code reviews, where it's your job to ensure that the quality of the code is up to company standards.
Sponsor. you'll indirectly help someone develop by providing them with opportunities they might not otherwise receive. Sponsoring inside of a company often looks like recommending someone for certain positions or roles, or ensuring someone gets a certain type of work that will help them develop the necessary skills. Oftentimes, the person you're helping won't know that you've sponsored them. Being a sponsor is about opening doors so someone else can walk through, setting up to succeed.
You won't play all roles to everyone in your career, and you might play several of these roles in conversation with someone. For today, just keep in mind that there are many different types of leadership, and therefore, many different ways for you to help your teammates grow. Understanding and using these roles will help you continue to progress in your career while benefiting others as well.
Key Takeaways
There are five leadership roles you can adopt: teacher, mentor, coach, supervisor, and sponsor.
Each role is appropriate in different situations and you will likely move between roles frequently, sometimes even within the same conversation.
Tech leads have the opportunity to practice all of these roles even without direct reports.