It depends...

YouTube University

June 14, 2020

One of the important things in my life is surrounding myself with awesome people. By this, I mean people who care. A bonus for me is when they align with my values (if not, then I would love to have an interesting conversation with them). Among the list of my values are 1) continuous improvement and 2) interest (obsession) with software.

So, when I meet fresh developers who are so full of energy, ready to whip up and build cool and impactful things, I get really excited.

Sadly, I often find their excitement paired with subpar guidance that fails to cultivate and grow their talent. I think one of the issues is a lack of dedication to mentorship. Mentorship takes time, but in my opinion, it is a worthwhile long term investment. Mentors have a chance to synthesize their thoughts and solidify their software development skills through teaching, while mentees become future strong contributors over time.

While I strongly believe in mentorship, I also do not have a lot of time available to mentor everyone I would like to. I try my best to be generous and available to others when I can, but my role also demands me to do other important things. So, part of my adventure is to find effective ways I can help others without necessarily personally being part of the critical path.

Dev Lunch n Learn

In FreshBooks, one of the things I started was a sort of “Netflix for Developers”, which we call Dev-Lunch-n-Learn. It is a weekly meeting where anyone interested would bring their lunches, and together we all watch a curated list of interesting videos, usually related to software.

How did I get the idea? Well you see, I love software so much that I married a man who is as obsessed with software as I am. We often study and watch conference talks about software design available on YouTube. When I find a really good talk about a topic, I try to share the idea or spirit of my recent knowledge with my reports. Often, I find that the conference speakers are more articulate than I am, so why not just invite other developers to watch the videos themselves? And so, the Dev-Lunch-n-Learn is born.

How does it work?

Everyone is welcome

We created a standing meeting scheduled every Tuesday at lunchtime.

Anyone in FreshBooks who is interested in watching videos about software is welcome to join. Yes! It is really anyone. We have some folks from our Customer Support team who are self-studying programming who sometimes join.

Videos are crowd sourced

Members of the group can suggest videos to watch. We have a Jira board open to everyone where videos can be added. On Tuesday morning, we vote on which ones to watch for the day. People can vote beforehand by adding their name on the Jira board and ordering the cards from most votes at the top to least at the bottom. Whatever is on the top of the list, we watch that day.

We also gently remind members of the video we are going to be watching in case some people want to cast their votes late, changing the plan.

Play time

Before COVID, we booked one of the largest meeting rooms. We started playing the video around 12:10 PM to give attendees enough time to heat up their lunches.

Now that we are all working remotely, we all join a Zoom meeting. A volunteer sets up the video for us using Watch2gether so we can all view the video in sync.

Retrospective

This is something we are doing more often now. We dedicate time after the video to reflect on the topic.

In my experience, I find that discussing videos with my husband is a really helpful exercise. We talk about what we agreed or disagreed with, and which parts are still unclear from the video we watched.

I thought this is also a very helpful exercise for the group in FreshBooks. The group seemed to like the after-video discussion where we also talk about how we can apply the concepts in our day to day.

During the early days of Dev-Lunch-n-Learn, we tended to watch hour long videos. This was not great because we were rushing towards the end, or worse: we asked the attendees to watch the rest at home or on their own and that was it for the session. Now, we tend to stop the video more frequently for discussion and continue playing in the next session to make sure we have time for discussions after the video. I think this is a good improvement in the process. Cramming is not learning for long term. The learning we intend to do is long term.

Oscars

We also maintain a list of videos that we thought were really helpful or good candidates for a rewatch. They often talk about timeless topics such as SOLID principles, testing strategies, etc.

Challenges

Dev-Lunch-n-Learn was designed to be inclusive. However, our initiative did not scale well when FreshBooks expanded to Europe (Amsterdam and Croatia). By the time it is lunch in Toronto, it is already end of day in Amsterdam and Croatia.

As a compromise, we make the playlist available for anyone who wants to watch the video on their own, but the current set up is not ideal.

Mentorship

Building a strong team is part of each developer’s job, regardless of their title. Less experienced developers should prioritize building strong foundations to be great developers. More experienced developers should create an environment to help junior developers understand and internalize good software practices.

The huge time commitment is often raised as a reason for not giving mentorship the appropriate investment it deserves. However, with enough creativity, we can make it easier for everyone to help each other grow.

I wanted to wrap this post up with my classic playlist (i.e. videos I will always recommend to anyone who is serious about software development). But, I feel like that list deserves a post on its own.

Until next week!


Written by Jill San Luis who loves building software and systems.