Categories: Podcast

Team Lead as Coach

In this podcast episode we talk about how a team lead should be a coach and mentor to the team. I talk about a few scenarios and about the contrasts between the “coach” and “fixer” mindsets that leaders can adapt.

Transcript

Hi I’m Rudolf Olah, and welcome to the NeverFriday Software Leadership podcast. On this podcast I talk about leadership in software development.

When coaching, you are developing someone’s skills and knowledge so that they can become more developed as a person and as a team member

Today I wanted to address coaching for team leads. What I’m going to cover today applies in other management and leadership positions, but the example I’m using is one specifically for team leads of software development teams.

The Scenario: You’re the team lead

Let’s set up the scenario. You’re a team lead on a web development team and one of the junior developers has been working on some code. It’s time to check their progress in more depth. The code they have written after a few days is okay but could use some improvements, such as adding more tests or matching the code style or there could be a major architectural improvement. The junior developer is waiting on you to see how much rework they have to do.

Are you a fixer? Or a coach?

If your first reaction is to jump in and just fix their code, then you might be a fixer. A fixer is a manager or leader who has the urge to fix things to meet their own high standards.

Jill Geisler discusses this in her article, “Are you a coach or a fixer?” and says, “Fixing is a temporary solution to an ongoing issue. Your employee or staff isn’t really learning when you fix. If anything, they are learning to rely on you to upgrade things to your satisfaction, while not growing their own skills.”

For example, in our scenario, the junior developer keeps forgetting to follow the naming conventions of the project. When you’re a fixer, you’ll fix their code to match the naming conventions. The junior developer will have learned nothing from this and will not develop the right habits. They will come to rely on you to fix their naming convention problems in the future.

As team leader you need to move away from the fixer mentality and move into a coaching mentality. When coaching, you are developing someone’s skills and knowledge so that they can become more developed as a person and as a team member. On a software development team, you are training your team to become better programmers. You are training your team to rely less on you by internalizing the right things to do.

Let’s return to our scenario.

You choose not to be a fixer, you step away from your keyboard and walk over to the junior developer. You get into the coaching mindset and sit beside the junior developer and pull up the code on the screen. You walk through a few spots that you think need work and you ask them questions about the code.

Your goal is to lead them to find the better solutions for themselves and to figure out what improvements can be made. You lead them with a question such as, “have you considered an alternative approach?” Another good question is, “what was your thought process when writing this part of the code?”

And just like that, the junior developer has started to gain the skills needed to become a more mature and capable developer.

Coaching mindset leads to skill acquisition. Fixer mindset leads to stress.

The best teams, whether they’re sports teams or software development teams, have coaches. Coaching your team is far more effective than simply fixing their problems. One of the bonuses of coaching is that you’ll feel less frustrated and less stressed. Team leaders can apply coaching every single day and see their teams grow as developers and as people.

Thanks for listening to the NeverFriday Software Leadership podcast. Check out neverfriday.com for more podcasts and articles on leadership in software development.

Rudolf Olah is a software development expert with over 8 years of professional software developer experience. He has produced the video courses "Reactive Programming in Python with RxPy, PyQt5 and Tornado" and "Learning AngularJS Testing" for PacktPublishing. Rudolf offers web development training courses for individual developers and for web development teams. He writes about tech leadership, career coaching and project management.