Remote Pair Programming

So how does it actually work if you’re supposed to share the screen and work on the same thing simultaneously?

16.03.2021 (3 minute read)

It’s actually quite simple. We use screen sharing tools to do it! But the trick is to use something that actually works. When COVID-19 kept us at home offices, we tried numerous different tools, some of them worked better than others but none of them are flawless.

Our requirements for the tools were: screen sharing, keyboard sharing, mouse sharing and of course the ability to talk to each other while working. And finally it had to be cross-platform.

Q: How do you talk to each other?
A: We really only use Discord to talk to each other. It works great 99.9% of the time, there have been some rare outages, but that happens to the best of us - nothing is flawless.

Q: How do we communicate with the clients?
A: To speak with our clients, for video conferencing we typically use what the client wants, for example Zoom, Slack, Teams etc. For smaller and/or ongoing topics we use Fleep, Slack etc.

Q: How do you share the screen?
A: Out of all the different things we tried, we have reached the conclusion that there are two of which we use and both have their advantages and disadvantages: Steam Remote Play and AnyDesk
I personally like to use Steam Remote Play. It is a bit unconventional, because it is meant for gaming, but it turns out that it works really well for development as well. Here is the list of tools and their respective pros and cons:

Steam Remote Play

Pros:
  • Whole desktop sharing
  • Multi monitor support
  • Keyboard sharing
  • Mouse sharing
  • 100% free!
  • Peer to peer traffic
Cons:
  • Requires a good PC to host, because it’s streaming is meant for gaming as a top priority
  • Clients must be up to date to connect to each other
  • Screen sometimes goes blurry, but that is highly dependent on internet connection and screen resolution. For us dedicated ethernet cable and 1440p resolution worked quite well
  • System “Alt+” shortcuts do not work (We had to rebind some of the typical keyboard shortcuts we use in our everyday life). Biggest issue is alt + tab not working, but the workaround was to use the mouse a bit more
  • Windows button does not work (although it is rarely used)
  • Setup is not trivial and takes some tricks to get it working as needed

AnyDesk

Pros:
  • Whole desktop sharing
  • Keyboard sharing
  • Mouse sharing
  • All the shortcuts work, even “Alt+” & “Windows” keys!
  • Simple setup
Cons:
  • There is a weird keyboard/mouse locking mechanism. If one person is moving the mouse, the other cannot use it the same time. I personally did not like this feature and this was my biggest annoyance. If there is a way to disable this feature, then I would probably choose it over Steam Remote Play
  • Floating name tags, again personal preference, but I don’t like extra noise on my screen, especially if I have to look it for the whole work day
  • Not free for commercial use

Floobits

Pros:
  • Developers code in their own computer rather than in host developer’s
  • Supports multiple IDEs and developers can use what they want (although we always use Intellij Idea)
  • Keyboard sharing
  • All the shortcuts work
Cons:
  • Need to share the code to centralized repository as Floobits is not P2P
  • Not free for commercial use

There are multiple plugins similar to Floobits for Intellij Idea that have all the same good features and they work great if they are used for pair programming as long as developers stick to coding. However, we also heavily use browser, chat clients, terminal, database client etc while pair programming, therefore those solutions are not acceptable for us as we still would need screen sharing.

Tuple

Pros:
  • Made specifically for pair programming
Cons:
  • Currently only available on macOS. We will try it out once it gets released on Linux and see what are the pros and cons and if we should switch to it.

Conclusion

Recently, many new screen sharing solutions offering remote pair programming functionality have been created and released due to the pandemic and remote work becoming more popular. We have not had a chance to test all of them out and most probably never will, so there’s a big possibility that we’re missing out on something cool.

Although we prefer to meet and work in the office, we’re glad we have found some good ways to do pair programming remotely. This allows us to work from home not only in the current coronavirus situation, but also when, for example, a runny nose appears in the morning, but taking a sick day seems overkill.


Solutional is an agile software development company which has a team of professional engineers who are able to solve all your software problems from beginning to the end without any middlemen.

Contact us at info@solutional.ee in case you have any new or existing projects needing help with successful execution.