RailsConf 2021

Lightning Talk: Pair Programming and Mentorship

Lightning Talk: Pair Programming and Mentorship

by Emily Harber

In her talk titled "Pair Programming as Mentorship" during RailsConf 2021, Emily Harber shares her personal journey as an early career developer and emphasizes the importance of pair programming in the mentorship process. She discusses how her initial self-learning and boot camp experience taught her the value of collaborative coding and mentorship. Harber highlights several key points regarding the relationship between mentorship and pair programming:

  • Personal Experience: Emily recounts her transition from self-teaching to joining a boot camp where she learned the effective Socratic method of problem-solving. This method encouraged her to explore solutions rather than just receive answers.
  • Mentoring at Shopify: After joining Shopify, Harber describes how she was paired with a senior engineer who became her mentor. This relationship focused on collaborative problem-solving, fostering an environment where both could share their knowledge and experience.
  • Role Reversal in Mentorship: A significant moment in their relationship was when her mentor sought her opinion on a coding problem, demonstrating that mentorship can evolve into a peer relationship, where both parties learn from each other.
  • Building Confidence through Collaboration: Pair programming allowed Emily to gain confidence in her technical abilities and improve her communication skills regarding coding. She notes that working with team members at various skill levels enriched her learning experience.
  • Emphasizing Active Learning: Harber emphasizes that active engagement, such as pair programming, provides richer learning opportunities compared to sporadic meetings or conversations. It allows mentees to practice skills in real-time and apply concepts with guidance.
  • Mutual Learning: Mentorship is presented as a two-way street, where mentors can gain new insights from their mentees, reinforcing that knowledge can flow in both directions.
  • Encouragement to Embrace Pair Programming: Emily encourages developers and mentors to embrace pair programming as a highly beneficial practice in mentoring relationships. She suggests that it enhances learning outcomes for both mentors and mentees.

In conclusion, Emily Harber advocates for pair programming as a powerful tool in mentorship, articulating that active collaboration leads to growth for both parties involved. She expresses a desire to share more practical advice in a future talk, highlighting her enthusiasm for engaging discussions around software development and pairing techniques.

00:00:05.180 Thanks, Evan, and thank you to RailsConf for inviting me to speak today. My name is Emily, and I use both they/them and she/her pronouns. I'm an early career developer, actually a second-career developer, and I'm currently working at Shopify.
00:00:20.640 A few years ago, I started teaching myself to code. For the first year of learning, I was alone. Eventually, I enrolled in a boot camp where I experienced a lot of pair programming and was guided by technical coaches through their Socratic method. They didn’t just spoon-feed me answers to problems; instead, they asked me leading questions to help me find my own way to the right solutions. That experience was really my first taste of both pair programming and mentorship.
00:01:03.180 About three months after graduating, I was hired at Shopify. When I started my job, my lead paired me up with a senior engineer on my team who was appointed as my official mentor. He became my point person whom I could DM on Slack and ask questions anytime I needed help with anything or had a question about code. My mentor offered to jump on a call with me and help me work things out. He didn’t just give me the answers; rather, we worked together to find solutions by using our shared knowledge and available resources.
00:01:38.820 We were both assigned to work on the same project, so we ended up pair programming a lot—usually because I’d be stuck on something or felt like I needed a second pair of eyes on my code. When we paired together, I got to learn from his past experiences and benefit from his higher-level knowledge in certain areas. I also gained much faster access to and awareness of internal resources that I would have otherwise had to find on my own.
00:02:05.400 Through pairing with my mentor on the project, I was able to build my confidence in explaining technical concepts and communicating about my code. After a while, I also started pairing with other people on my team, working with individuals who had a wide array of knowledge and experience levels. I even got to pair with interns on things I was more knowledgeable about.
00:02:52.020 After a few weeks, something surprising happened: my mentor reached out to me on Slack and said, 'Hey, can we hop on a call? I want to get your opinion on something.' My opinion! I was genuinely surprised. Here was someone with eight years of experience ahead of me who wanted my perspective on some code. Obviously, I said yes, and we ended up working through the issue together. He listened to my opinions; we tried different approaches and were able to come up with a better solution together.
00:03:24.300 This started happening more and more until I realized we had exited our mentor-mentee relationship and had become true peers, working together to share our ideas and solve difficult problems. Through all of this, I had become a more valuable member of the team, able to make more meaningful contributions. And this is where we come to the theme of my talk, which is pair programming as mentorship. I see a lot of people treat mentorship as a conversation, and while having an open dialogue is a really important part of that relationship and process, I think that when it comes to early career developers, having a mentor who sits down and works through code with you provides much more value than just talking once or twice a week.
00:04:03.840 When you solve difficult problems together, you give your mentee the opportunity to build their confidence, practice their skills, and use you as a live resource. Additionally, you get to share your knowledge in real-time along the way. The benefit of this relationship isn’t only to the mentee. At some point during the process, hopefully at many points, there will be a role reversal where your mentee teaches you something you didn’t even know before.
00:04:31.260 Even if someone is early in their career, they may have experience with some technology or concept you’ve yet to learn. It’s always safe to assume that everyone knows something you don’t know yet. As a mentor, you also have the experience of re-solidifying your knowledge by approaching problems you’ve encountered in the past through a new lens.
00:04:56.520 If I had more time, I could dive into much more practical advice on how, when, and why to pair program as much as you can, including tips for accessibility and the comfort of all participants. However, since I only have a maximum of five minutes to share this with you, what I hope you take away from this is that pair programming is something you should enthusiastically embrace, especially in your role as a mentor.
00:05:21.480 If you’d like to hear a longer version of this talk with all that practical advice, I hope I’ll be invited back to speak next year. Thank you again to RailsConf for inviting me today. If you’d like to get in touch to chat about software development, pair programming, Ruby, Rails, or really good coffee, you can find me on Twitter at @thecodepixie. Thank you so much!