Today I’d like to tell you about the experience I had while being a coach. The last three months, I worked with one of the RailsGirls Summer of Code unofficial teams. I say “unofficial” because we didn’t get selected in the program, but it didn’t stop us from having a great summer together.
I met Karen and Sandy some months ago at a RailsBridge workshop and, since the installfest session they caught my attention. They both showed a lot of interest and autonomy in solving issues and helping others to solve theirs. Their willingness to learn new things and enthusiasm was outstanding.
A few weeks later, I knew that the company I work for was participating as a coaching company in the RGSoC program and someone asked me to invite the Codificadas members. That’s how I ended up reaching out Karen and Sandy.
We kicked off on July and the girls started by learning Rails and Git. That was my first time as a coach, so I wasn’t quite sure of what to do or how to proceed. The only thing I had in mind was to accomplish the project goals, to deliver the tasks in time and to help Sandy and Karen to become better developers. But how? …I had no idea. 😐❓
Learning, unlearning and relearning
They had experience with some others programming languages, but they were Rails beginners, so, my fellow coach Fernando Perales and I had to spend several hours per day with the team, explaining things like TDD, MVC, migrations, Active Record, etc. It was like beginning again for us, the “experienced” engineers, having to understand how all the basic things work, and then explain them in a simple way. It was the most challenging thing.
In my daily work I don’t usually have to start a Rails project from scratch every week, because I’ve been working on a large codebase that has existed since before I joined the team. That’s why I tend to forget basic concepts like how to create a rake task or how Action Mailer works. ¯\_(ツ)_/¯
My work as a coach started to be time consuming and sometimes I totally lost focus on my own duties because I was more worried about solving my trainees’ questions, and helping them delivering things in time.
At some point, I was totally overwhelmed and started to think it wasn’t a good idea to be in charge of the team. It was just too much work and responsibility. I wasn’t able to manage my project and their.
But despite that, I was also learning. The sense of getting out of my comfort zone started to make me feel different. I slightly noticed how I was approaching the technical challenges in a better way. I was applying to my own work the same advice I was giving to my trainees: decompose the problem, simplify, read the error messages, ask for help, learn to identify the alternatives, listen to your teammates, give your opinion, test your code, don’t rush. I was also training myself, becoming a better developer.
From zero to hero
One day, their first pull request was merged and I suddenly realized that it was all worth it. They were super happy and it was contagious. It was something that boosted our motivation and energy as a team.
From that moment on, Karen and Sandy became more autonomous and self-directed. Having their code in production clearly increased their confidence. They started to implement new features and fixing bugs by their own, without needing our help or guidance as much as before. They were putting in an extra effort on learning and accomplishing the goals. And it was paying off.
Three months went by and our time in the RubyGameDev project was almost over. By then, we were a solid team in which everyone was a very different person than three months before. Some of us learned and relearned about Rails fundamentals, some others learned on how to balance work loads and effectively manage time, but for sure every one of us learned on how to be part of a team and support each other, no matter how junior or senior we were.
We didn’t build just a team, we built a group of friends. After all the time we spent working in the office, we realized that it was great being together and talk about anything, telling jokes and laughing out loud. At least for me, it was the first time (in three years) I really connected with someone at work.
The payoff of practice
All the code that Sandy and Karen wrote is now in production, and we couldn’t be more proud of it.
But it didn’t stop there. Thanks to their hard work and effort, both trainees were offered a six-month internship at MagmaLabs, and recently, they entered the HackColima hackathon and they won the first place…way to go! 🏆
They also ran a PHP’s CodeIgniter workshop for 20 people where they taught them to build a web application from scratch using this framework.
Now they’re part of the engineering team at MagmaLabs, and have a lot of interest in continue working on OSS. Sandy recently made a contribution to OpenStack Trove. 👏🏽
Better developers, better persons
After all this time, I’m grateful and happy that we met and worked together, they both are gifted and talented, always willing to work and learn, always improving™. ❤
For me, coaching a team it’s been one of the most enjoyable and fulfilling experiences in my career. It gave me a totally different perspective on how to approach to junior developers, made me be more empathetic with less experienced people and, overall, it helped me to become not just a better developer but a better person.
I highly recommend you to try coaching once in your life. It can be hard and overwhelming at the beginning, but helping someone to grow and succeed is one of the best things you’ll ever live.