Coaching software engineers


About why it's not too early to coach team members, that software engineers also need coaching and how to start

France came out of lockdown this week and, apart from restaurants and tourists, today seemed like a normal day in Paris. As you might know, apart from running TLT21, I’m also in charge of the Startup Lab at EPITA Paris, where I try to foster the next generation of tech startup founders. One of my key challenges, when the lockdown started, was to keep coaching the students on their projects. And while I’ve been doing 10+ coaching sessions in a row face-to-face, the transition to videoconference made it physically tiring and probably with less value than usual. Until I decided to do a little experiment.

What if students from last year, the ones that have actually built their startup, alternatively coached this year’s students? Could “inexperienced” entrepreneurs and coaches still bring value? Read on because the answer is quite surprising 😉

It’s never too early to start coaching

To be fully transparent, the sample studied (8 student groups, 7 coaches) is not large enough to be significant so these results might be subjective. It’s also important to say that most coaching apprentices had received coaching from me for the past 10 months.

After a couple of coaching rounds, when asked to rate their coaching sessions, 90% of students gave 4 and 5 stars (out of 5). Informal discussions led me to realize that the value they got from the coaching apprentices was as valuable as mine. This finding is actually in line with Eric Mazur’s peer instruction method. A professor of Physics at Harvard University, Eric Mazur realised that by asking students to argue their answer to a test, before revealing the solution, most of them would actually find the right answer by themselves. According to Mazur, since the other students just understood a topic, it’s easier for them to explain it to their peers, instead of the professor who’s been harping about it for years (like me 🤓).

What’s even more interesting about my coaching experiment is that the most experienced coach was not necessarily the most acclaimed. Out of the 7 coaches, one of them was not a young graduate, but an alumni who graduated since 6 years and has been running a successful consulting business for 2 years now. When asked which coach brought the more value, 60% of the respondents chose one of last year’s students instead of the alumni. So, if you thought that to start coaching you needed years (decades) of professional experience, think again.

But software developers don’t want to be coached

In a 1997 study, Olivero, G., Bane, K.D., and Kopelman, R.E. tried to measure the impact of executive coaching on 31 managers in a US city health agency.  In phase one of this project, all managers participated in a three-day, classroom-style training workshop that included a variety of interactive activities and focused on their work roles. The participants rated the training workshop very highly on all quantitative and qualitative measures. In phase two, the managers participated in eight-week one-on-one coaching that detailed coaching processes tailored to the agency context. After phase 2, the authors found that while their training intervention with managers increased manager productivity by 22%, adding a one-to-one (8-week) coaching intervention after the training pushed productivity to 88%.

But even with numerous evidence, it seems that software developers and leaders do not naturally turn to coaching. In a popular Reddit thread about coaching, most commenters replied that while coaching seemed interesting, they would still prefer to read the best books on the topic they’re struggling with. And it’s true that software engineers are very self-serve and DIY when it comes to learning. But it’s also true that they see and appreciate the benefits of coaching when they receive it. According to Google’s Project Oxygen, a company-wide study about great managers’ skills and behaviours, the best managers are good coaches. More specifically:

  • they give specific, timely and balanced feedback
  • they know how to deliver hard feedback in a motivational way and understand the unique strengths & development areas of each team member
  • they tailor coaching (e.g. to individual motivations, communication styles etc), suggest solutions, and have regular one on one meetings

How to start coaching

In the Coaching Habit, Michael Bungay Stanier argues that if coaching could become a regular, informal part of managers’ day, their teams could work less hard and have more impact. It actually doesn’t take that much time for software leaders to start a coaching habit with their team members. But how to start?

The essence of coaching is unlocking a person's potential to maximise their own performance. It is helping them to learn rather than teaching them

Sir John Whitmore, considered by many as the modern-day father of coaching

There are of course a lot of coaching certifications, offered by individual coaches, coaching companies and universities. But, unless you’re planning on becoming a full-time personal development coach, I don’t believe you need a certification to start coaching team members on performance. The main point you need to understand about coaching is that it’s mainly about asking questions. Also known as the Socratic method, teaching by asking questions allows the coachee to figure out the answer on their own instead of just getting (and doubting) your own solution. Like in this example:

Of course, asking questions is not sufficient. You also need to take the coachee from point A to point B. Goal setting is the other pillar of performance coaching and I’ve been for example using a lot the OKR method for my coaching sessions.

One last note. There are situations where coaching should be avoided, like when dealing with serious underperformers (coaching is not a performance plan) or if the coach believes the coachee cannot achieve the goal. An important aspect of coaching is having a growth mindset, and understanding that a person’s potential is not known or knowable.

In summary

  • Coaching is one of the skills that great software leaders should master
  • It’s never too early to start coaching. Even coaches with little professional experience can bring value
  • The essence of coaching is unlocking a person's potential to maximise their own performance
  • The basics of coaching is about teaching by asking questions and setting goals

Additional resources

If you’re interested to get more content about coaching software engineers, I recommend the following resources:

📖 The Coaching Habit- a book by Michael Bungay Stanier

📄 You’re Not Managing a Team of Software Engineers, You’re Managing a Team of Writers - a Medium post by Joe Dunn

📼 Want to get great at something? Get a coach- a TED talk by Atul Gawande