Navigating a pandemic, remote working AND pair program?

For those who might be not be familiar with the concept, pair programing consists of two programmers sharing a single workstation (yup you read that right, one screen, one keyboard and one mouse for two programmers). The way to make it all happen with as little conflict as possible is by having a programmer at the keyboard (the “driver”), the other, is also actively involved in the programming task but focuses more on overall direction (the “navigator”). But it doesn’t end there, it is also expected that the programmers swap roles every few minutes or so!

Fun? Time Consuming? Frustrating? All the opinions on this method are out there. But it is important to know that although this type of programming can seem counter productive, it’s been consistently shown to improve quality of code while taking the same delivery time since the very early 90s.

Can Pair Programming Survive Social Distancing?

Yup pair programming has been around for quite some time now , but it’s practical application has changed quite drastically in the last year. The World’s pandemic caused by COVID-19 has been responsible for a complete restructuring of the way companies and businesses operate and working from home has become the new normal for a great deal of people. Working from home comes with added distractions, communication difficulties, and technical constraints. Additionally, even if we were all back in the office I would wish good luck to any team lead trying to get his team members to share stations while maintaining 6 feet of space!

The impacts of the new normal on the use of Pair Programming can be seen in a number of ways:

  • Programmers had to adjust and start using VScode live share a lot more than before.
  • It is more difficult for both participants to stayed engaged while working remote.
  • It is difficult to communicate and navigate the code on video call a as navigator without overstepping your role in comparison to in person.

Given frustration is a common pain point and complaint against pair programming the above are potential pitfalls that can seriously affect the effectiveness of the exercise. However, like all potential roadblocks they can be navigated and there are many reasons that Pair Programming has as much, if not more of a place in the current remote programming world.

Pair Programming and Learning to Code: My Experience

As a student undertaking a web development Bootcamp and learning to navigate peer programming for the first time completely remote, I have had first hand experience with the issues above making them pretty easy to identify. While finding the exercise a little painful at first, I was also able to identify potential solutions. While I know there are conflicting view points across the development community, I personally believe pair programming has significant value now and in the future as we continue to adjust to the new normal.

On one of my first pair programming exercises, we had to come up with a solution to a pretty straight forward question. Except of course it wasn’t, and the person I was pair programming with was very confident of the way to solve it and as a navigator (not the keyboard programmer), proceeded to start typing. Well let me tell you, I took a solid back seat on that one (something discouraged in paired programming), up until the point where nothing was progressing and I decided to ask for help from a mentor. Turned out the approach taken would’ve benefited from my inputs and it would’ve saved us a LOT of time.

Everyday is a school day and I used this experience and our other remote working pair programming sessions to identify some key points that improved my experience and outcomes:

  • Have a small talk about anything else but coding with the person you’re working with prior to diving in!
  • Let your voice be heard but be respectful and remember to listen to your colleague.
  • Lock your keyboard while being the navigator to overcome your instinct to simply type in what’s on your mind.
  • Ensure everyone has their video on to ensure engagement and reduce distraction (check out additional content on the benefit of video while remote here!).

Why pair programming is relevant for all career stages as a developer:

Once I applied these and shared my tactics with my colleagues, Pair Programming became a very powerful learning tool throughout my Bootcamp.

Additionally, the following points are why I think all Bootcamps, new hire onboarding, and employee trainings should include some level of pair programming exercises, especially in the new remote world:

  • Foster partnerships and team collaboration
  • Break the monotony of working alone from home.
  • Solidifies the ability to properly articulate our thoughts as code.
  • Gives the opportunity for better transfer of skills, as junior developers pick up micro-techniques or broader skills from more experienced team members.

Never pair programmed before?

Try it out! Pair programming is a really good way to solidify skills and learn from other devs. Plus it’s a fun change of pace. Two heads are often better than four in programming and that’s probably an understatement. Who’s never spent hours trying to find a bug only for another dev to find a typo or the solution to your misery in a minute right?

Additional Material and Sources:

Extreme Programming

Agile Pair Programming

Benefits of Video Conferencing

Flight attendant turned Full-Stack Web Developer. Found coding through the pandemic. I want to learn and share it the best I can.