How Live Collaboration Coding Tools Will Boost Your Pair-Programming Efficiency

At Aircall, we recently started pair-programming with live collaboration tools. The results are more interesting pair-programming sessions, easier collaboration and better teamwork as a whole. In this article, I’ll tell you more about the advantages we found doing it.

Baptiste Acca
Inside Aircall
5 min readJan 29, 2019

--

Disclaimer: This article is based on VS Code and Atom. Other IDEs that also support live collaboration are not documented here.

What am I talking about ?

Some IDEs provide extensions to enable live-collaboration. What this means is you can connect to a collaboration session and edit the same files in real-time, just like Google Docs! You’ll see other people’s cursor, selection and what they are typing.

This is what it looks like in VS Code — Source: Introducing Visual Studio Code Live Share

Disclaimer : it only works if you use the same IDE, with the corresponding extensions installed.

Why you should try it too

We used to pair-program with people in the office only. Recently, to make our culture more remote-friendly, we started extending this practice to our colleagues working remotely. At first, we used Zoom / Slack / Hangouts, and shared our screens. We started looking for ways to improve this process and stumbled upon VS Code Live Share and Atom Teletype and we started replacing our traditional video conferences with live collaboration tools. Now, we’ve extended the use of these tools for face-to-face pair programming as well. Improving our remote culture ended up also improving our in-office collaboration.

Here are the top 5 things we love about live collaboration for pair-programming sessions:

1. It helps involving everyone and keeping focus

When pair-programming, you usually end up having one person writing all the code (the “driver”) and the other discussing implementation choices, making suggestions (the “navigator”). But it’s hard for this person to stay focused after a few hours. Especially after the task is clearly defined, and all that’s left to do is writing the code. It’s even harder when working remotely, because losing focus during a Hangout or Zoom is easy.

In that situation, you either stop pair-programming and split the work or switch keyboard if you are using the Randori method. Or the person doing nothing falls asleep.

What’s great with live collaboration is that this will never happen. Since you are both editing the same code in real-time, you can quickly get into coding. You can also split tasks, but you don’t have to stop pair-programming to complete them, which is easier when you need to sync afterwards. Plus, it avoids conflicts on your version control tool when working on the same feature. What’s not to like?

2. It eases communication

Have you ever dictated code to someone? If you have, you might sometimes find yourself in a difficult situation where it’s hard to make the person understand what you mean.

With live collaboration, no need to do that : you can just type it, which will save you countless “I didn’t get that” or “could you send it to me in Slack?”.

3. It’s more interactive

It’s usually hard to join an ongoing pair-programming session: you need to understand the task, acknowledge what’s been done, what’s left to do, and how things are built.

When joining a live collaboration session, on the other hand, you can take some time to explore and understand on your own, without having to interrupt the other pair-programmers*. We found this to be particularly useful, because it’s also a good way to have an external opinion about something without getting possibly biased explanations.

And if you do want your coworkers to give you a presentation, there’s a presenter mode which will follow the presenter’s cursor. A nice tool to explain your train of thought!

*Disclaimer: in Atom, contrary to VS Code, the file-tree of the project is not shared so files must be opened beforehand so you can navigate through them.

Accurate representation of what live-collaboration feels like

4. You’re at home

When you pair-program in real-time, you are still using your own Atom / VS Code configuration, with that theme you like so much, the snippets that you love, and the extensions/plugins you can’t live without. Oh, and you use your own keyboard.

This eases collaboration because you can directly jump into the task without having to decipher your coworker’s weird Vim config or Dvorak layout.

5. Gamifying tests

Another cool thing you can do when live collaborating is having one person write all the tests and the other implement the feature. This is a great way to find out if both understood the task the same way and thought about the same edge-cases or design choices. It’s also a way to gamify the process.

How to set it up

Are you sold on it yet?

Here’s how to set up live collaboration tools in Atom and VS Code.

Atom

Atom Teletype

VS Code

VS Code Live Share

Things you should know

When you are editing files in a live-collaboration session, only the files of the host computer get modified.

In Atom, you don’t have access to the file tree, and you can’t create new files in the host’s project. You can in VS Code.

In VS Code, you can open a shared terminal, that is available for everyone on the session. This is useful to launch commands, like unit tests, when you are not the host, because you don’t have the source files on your machine.

In VS Code, you can even start a vocal chat from a collaboration session, and you have a text chat. So no need to switch to another app to communicate!

In VS Code, you can also start a read-only collaboration session, which can be useful for presentations.

Thank you for reading, let me know if it worked for you and share your own experiences!

PS: Want to join our great team? We’re hiring! Apply now on https://aircall.io/jobs/

--

--

Baptiste Acca
Inside Aircall

Software Engineer @aircall, I like cats, junk food and tv shows