When I joined the Lighthouse Labs Web Development bootcamp in October, I felt a sense of dread knowing I would be pair programming with cohort mates just three days into the program. I had very little previous coding experience, was trying to conquer the basics, and was worried about being judged, or not contributing enough. I had also never seen pair programming in action before, so the thought of working remotely with strangers on a coding challenge was sending me into a bit of a spiral.
Fast forward to today. I am finishing up week nine of the bootcamp and in my experience, the situations in which I’ve learned the most have happened while pair programming remotely.
In this article I will discuss some benefits to remote pair programming as well as provide some tools to help get you started!
Let’s back up…
What even is pair programming?
If you ask Wikipedia, the answer is a little basic and outdated.
When I read this definition before my first pair programming session, I expected the process to be rigid, dry, and full of rules. Nothing could be farther from the truth!
The idea of having a driver and a navigator is important, in fact, without this dynamic you might as well sit at different computers and work separately. However, the beauty in pair programming is that you can make it as free-form as you like. Switch up the roles often. Don’t feel that as the driver, you can’t help brainstorm ideas with the navigator. Pair programming is a collaboration and you will understand code better when you look at it from another perspective or listen to someone else explain how they are planning a solution.
The other glaringly obvious difference in Wikipedia’s definition compared to today’s implementation of pair programming, is the ability to now do all of this remotely.
Sure, working physically beside someone might seem like a more tangible experience — but working remotely isn’t going away anytime soon. When you work with someone else on code remotely, you are still sharing knowledge and are still able to review code instantly. Not to mention, working together remotely avoids the awkward chair shuffle of switching roles, you can pair the program with more than one other person at a time and you have the opportunity to code with someone who is miles away! This is a great way to keep teams connected and to build new working relationships.
So let’s get started…
I suggest working with all of these and finding which tools work best for you.
Live Share on VS Code:
We saw a quick example earlier in the article, but let’s explore this option deeper. If you use VS Code as your editor, you can download the Live Share extension. Your partner(s) will have access to work on any project file and can access the terminal within VS Code. Live Share is great for working on a small bug or even working together to add a new feature to your app. Lastly, even if someone in your group does not have VS Code, they can still hop on a session through their browser!
Replit (https://replit.com/~):
I recently used Replit for the first time during a technical interview, which made ‘white boarding’ much easier (who wants to write code on MS Word?!).
Using Replit is best suited for those types of situations, or working on a code snippet with a partner.
With Replit you can also run your GitHub repos once you’ve connected your account and there are over 50 different programming languages to choose from!
Pop (https://pop.com/)
Remember how you’d have to connect to a Discord voice channel while working on Live Share? Well, Pop allows pairs to use voice and video chat directly in the app.
Pop is a highly interactive platform, with features all in one place to make you feel like you’re back in the office with your team.
Try your hand at whiteboarding with actual draw tools and easily join a collaborative session via a multitude of platforms like Linux, Mac, Chrome, and even mobile browsers!
CoScreen (https://www.coscreen.co/download):
With CoScreen, we have the ability to chat and see each other directly in the app which helps us feel more connected. At this point, we’ve seen that feature before; but where CoScreen takes pair programming one step further is with their window sharing feature. Unlike the previous examples, CoScreen allows all users to share windows and anyone can interact with it when they need to!
Where do I go from here…
I hope going over these options didn’t overwhelm you. The point is that pair programming can actually thrive while we are all working remotely (and even when we return to the office).
If you are new to coding or pair programming, start small. Jump on Live Share or Replit so you can quickly use basic software while establishing a good workflow with your peers. If you are an experienced developer and are bored by pair programming, give Pop or CoScreen a try!
More importantly, think outside the box when it comes to pair programming. Introduce a weekly pair programming hour at work, ask a friend to jump on Replit and show you how they’d solve a small coding challenge, or reach out beyond the workplace and work together on a mini-project with a friend. Whatever you use pair programming for, I can guarantee that the ‘remote-ness’ of it all will make you feel anything but — you will feel more connected and learn something new!
Follow me on GitHub: https://github.com/taylornoj
Connect on LinkedIn: https://www.linkedin.com/in/taylor-noj-a7317891/
List of Programs mentioned:
Other Programs to checkout:
FOOTNOTES
Inspiration from:
A List of the Top 8 Remote Pair Programming Tools by Pius Aboyi
https://www.coscreen.co/blog/top-8-remote-pair-programming-tools/
Remote pair programming? Oh yes, you can by Ruslan Prakapchuk
https://www.atlassian.com/blog/technology/remote-pair-programming-tools-process