As remote work extends into the foreseeable future, we’re all searching for ways to make long-distance pair programming work better — especially when joining a project (or, in my case, just starting out as a developer).
If I were living through an alternate 2020 in which I was sitting physically next to my pair, I could point out a section of code on their screen that was confusing me. They could see my eyes narrow in uncertainty. I could peek over anyone’s shoulder as they worked out a complex problem. Alas, this is the 2020 we’re in, and we have to make the most of it.
Fortunately, there’s no shortage of remote-friendly tools to help replace in-person collaboration. But bouncing between Zoom, Discord, Miro, and VSCode Live Share is not efficient. Thankfully, my coworker and fellow Accelerator member Jimmy introduced me to Screen, a (currently free!) screen-sharing application that leaves room for plenty of active collaboration.
Screen has many great features. Here are three functions I find very helpful.
When I was being introduced to integration testing with Postman, pairing became difficult. Postman does not support parallel editing, so active involvement for multiple people is challenging.
I prefer to struggle with things for a bit and learn from working them out. Sometimes, though, things get lost in translation and you just need help. Screen’s collaboration abilities leave room for a balanced mentorship and for “hands-on” help when it’s needed.
Screen allows users to trade control back and forth. When I decide that I want to take a stab at working out our latest API endpoint, I can click on my teammate’s shared Screen and take over typing. This adds the potential for pairing on any tool. I can easily trade off on the responsibility of writing without having to worry about lagging behind on a separate version of the same code.
Screen also has some great accessibility features like ephemeral text messaging. Those who are hard of hearing (and parents working from home with kids around) might find this feature helpful while collaborating.
Starting my current project felt like I was back in my Plant Taxonomy class identifying the Asteraceae family. Everything looked the same, and I couldn’t figure out how it was all related. I learn most effectively through active participation and diagramming, so just viewing someone’s screen while they rapidly jumped from file to file wasn’t working for me.
Screen’s drawing tool allows teammates to do things like highlight areas of code, make active suggestions about front-end features, or work out a data flow without having to migrate to another window.
Diagramming has been beneficial for me while working out how our fake API (for testing purposes) reflects the real API. Using the drawing feature for something so simple as underlining points of uncertainty has proven endlessly handy.
Screen also offers meeting scheduling. These meetings can be integrated into other platforms like Google Calendar or Slack to organize more formal collaboration sessions. This is helpful for events like sprint demos — you can give clients a chance to interact with a product more directly using the Screen’s other features.
Having one application that can move smoothly between pair programming, diagramming, and screen sharing is great for keeping up a contiguous workflow and communication system. Using Screen has allowed for a much smoother onboarding process, and it has also cultivated more effective collaboration strategies within our team.
If there are any tools that you have found particularly helpful for communication and pairing remotely, please let me know in the comments below.