Toastmasters Speech: Coaching Young Developers

Notes for my speech on November 12, 2019 at the Toastmasters Club Toast of Berkeley.

Typically a coach is someone that is focused on specific goals and generally has a short term relationship with the coached person. A coach helps and guides the protege. 

A mentor instead is someone that has a long term continued connection with the protege based on mutual trust. He works on multiple issues or skills. 

You can hire a coach, but you can’t hire a mentor. Consider yourself lucky if you have a mentor.

I want to share with you my limited experience as a coach and what I learned for that experience.

During the last few years, I worked in a small company, and we didn’t have the resources to hire highly skilled developers. Even for local programmers, we were out of budget. My only option was to get young developers from Italy and help them to grow professionally. 

I have a dear friend, an ex-colleague, at the Computer Science Department of an Italian University. As a teacher, he knew the best students, and he was glad to introduce those students to me for their first job. It was a win-win combination.

I was able to get the best students, to pay them a reasonable salary while saving a significant amount of time and money compared to hiring a local candidate. 
The students were able to build their first professional experience with an American company located in Silicon Valley. A shiny item in their Italian resume. Because of the exchange rate, they were also getting some decent money for the job.
Even the brightest students are inexperienced programmers. Part of my job was to coach them, helping them to become better programmers and to develop a professional attitude. Because of the distance, the difference in time zones (9 hours), and the brevity of our professional relationship, I could not become a real mentor. I had to focus on specific skills and goals, like a coach. 

My approach is to work on one at a time. I also like to keep the young programmer engaged and enthusiastic as much as possible about the project. I believe that enthusiasm and passion are incredible drivers for human behavior, so I always tried to leverage them in my favor to help my young employees to grow professionally. My technique was to assign them a new project, something with enough space for them to make their own decisions, but not too critical for the company to suffer the consequences of inevitable mistakes. As the first inevitable issues were emerging, due to their expected lack of experience, I was watching the issue to emerge and letting the problem and the data objectively speak for themselves. In my experience, this is the best moment when a coach can intervene, not providing the solution, but rather facilitating the process of finding a solution. A kind of magic moment when the person we are coaching is most open to receiving feedback and being supported in the process of finding a solution. The ancient Greek philosopher Socrates was called process maieutic.

Most of the time, this approach worked very well. I was letting the young programmers face the consequences of their decisions, and softly helping them to find a suitable solution without imposing my point of view. The results were significant: the young developers were learning quickly; their first-hand experience was quickly shaping the way they were thinking and facing decisions and issues. This approach was also reinforcing the sense of ownership of the project. Not least, our professional relationship was getting stronger and stronger with more and more trust on both sides.

I’m aware that this experience happened in a particular context, and I know that coaching someone can be much more challenging. In many professional settings, there’s limited space or tolerance for mistakes, or the coached person is more senior and less open to learning new skills or to changing well-established opinions.

I’m confident that each of us can benefit from being a coach for someone else as well from being coached by someone else.