Tuple vs CoScreen
Pairing, whether on writing code or joining a sales call, is one of the most common ways we collaborate at Stride. Since going fully remote, Striders have been experimenting with numerous screen-sharing tools to facilitate remote pairing.
Video conferencing standbys like Zoom, Google Meet, and Slack provide the basic necessities for a remote working experience. However, our consultants were interested in a new crop of tools that are purpose-built for remotely pairing on software development.
A quick note on pair programming
Much has been written about the benefits of pair programming. As advocates of extreme programming (XP) practices, Stride consultants believe strongly that pair programming is an indispensable practice for developing high-quality software, just like test-driven development, retrospection, and iterative releases.
Pairing helps us build strong teams through knowledge sharing, empathy, faster learning cycles, and greater accountability.
How we measured our experience
We rated each of the tools we tested in the following three categories:
Ease of onboarding
The success of a pairing session can be jeopardized if either party is frustrated or uncomfortable. When pairing in person, Striders take care to create a comfortable pair-programming environment. The same principle should apply when pairing remotely, so we looked for a streamlined onboarding experience and ease of setup.
Adequate performance is the most important feature of a remote pairing tool. Without it, pairing can be impossible. We looked for low latency between input and display, synchronized audio and video, and high-enough-resolution video to clearly read code.
A remote pairing tool should allow both users to participate equally in pairing, but some guardrails are needed for privacy and system access. We looked for clarity on what was being shared and the ability to limit sharing to particular applications.
Ease of onboarding
We compared each step of the onboarding process, to determine which pairing tool was easier to get started with.
CoScreen’s sign-up process is more streamlined than Tuple’s, making onboarding a breeze.
On Mac, CoScreen provides a direct link to a .dmg installer and allows for single sign-on (SSO) with Google. This may change when CoScreen begins further monetizing its product in May 2021, but the current approach is very straightforward.
Meanwhile, Tuple requires users to add a credit card and begin a 14-day free trial. Tuple also asks users to join a team during sign-up, which is convenient, but the billing implications of joining a team are not explained. For example, if you’re pairing with someone outside your organization, it isn’t immediately clear whether you both need to be paid Tuple users.
An unavoidable aspect of pairing tools is the need to assign a variety of OS privileges to the application, including microphone, video, and screen recording.
CoScreen has a helpful custom UI that shows which preferences need to be changed for the tool to be usable.
Tuple relies on native system prompts. After installation, we experienced silent failures in Tuple when trying to pair. After auditing our system preferences, we realized we had missed granting certain permissions. CoScreen’s permissions dashboard helped us avoid this problem.
CoScreen also has a nice interactive demo showing how to use the product. Tuple leaves users on their own to figure out how the product works. Neither product is terribly complicated to use, but CoScreen’s demo reassured us that our pair would be able to see only specific parts of our screen. This wasn’t obvious when first using Tuple.
Starting a session
There are three options for sharing a CoScreen with another user: sending an email invite, sending a link, or scheduling a meeting with a link to the CoScreen.
Tuple uses a friends system in which you must first connect with other users, and then you can start a session with them.
Image source: Tuple’s Getting Started Guide
These different mechanisms for starting a session reflect the differentiators for each product. CoScreen aims to facilitate mob programming (wherein a group of three or more works synchronously together), while Tuple’s experience is optimized for pairs. Tuple has been actively making improvements to its experience for mobbing, however. We go into more detail on this in the next section.
CoScreen takes a unique approach to sharing whereby a “Share window” tab floats above or within any window that your cursor travels over. Clicking this tab toggles on the sharing of that window.
Additional windows can be added to the share one at a time. They can also be toggled off. Either pair can select a window and begin typing. Any user on the call can share, and multiple users can share simultaneously.
CoScreen allows you to toggle sharing on or off, window by window.
In CoScreen’s floating application window, the usual toggles for video, audio, and screen sharing exist. You can also add users or leave a call at any time. A session in CoScreen is persistent, meaning it behaves like a chat room that you can name and come back to again and again.
CoScreens are persistent sessions that can be revisited again and again.
In Tuple, the user draws a box around the portion of their screen that they want to share with their pair.
There are two sharing modes: tag team and multi-cursor.
- The tag team mode is great for structuring driver-navigator roles.
- The driver has control over the mouse, and the navigator needs to “tap in” by clicking their mouse to take over control.
- The multi-cursor mode allows both participants to control the mouse. This mode facilitates pairing styles with shorter cycles, such as ping-pong pairing.
Tuple also includes a "three-player mode" where up to 3 participants can mob on code in real time. Tuple currently allows for no more than three people in one session, making larger mob sessions impossible. We expect over time that Tuple will continue to develop "multi-player" modes to close the gap with CoScreen.
Nothing sours a good pair-programming session like laggy audio or video. We found that when using CoScreen, there is often a lag when the remote user is typing. Also, pairing with someone who has a different screen resolution results in downscaling, which can cause a fuzzy experience.
Performance is an area where Tuple really shines. We rarely had issues with lag, audio, or video in Tuple, even with three users.
Tuple lets you select the resolution you would like to transmit. We found that Tuple running at a screen width of 720 pixels is hard to read, a 1080-pixel width is similar to CoScreen, and higher resolutions offer a superior experience. The flexible screen quality is a nice feature for users with limited system resources.
Security and privacy
CoScreen’s sharing mechanism provides a bit more privacy than Tuple’s. CoScreen’s window-by-window sharing excludes control of programs that should be out of reach for your pairing or mobbing partners by default.
On the other hand, Tuple defines screen sharing with regions, meaning you need to remain mindful of which windows cross into the shared portion of your screen, because your pair will be able to access them.
Both programs seem to prevent closed programs from being opened.
Tuple has a variety of extra features, including sending confetti and drawing on the screen. As a newer product, CoScreen lacks such niceties. They go a long way toward improving collaboration and add value to Tuple’s product.
As of this writing, Tuple has a 14-day trial, after which it costs $25/month. You will need to cancel the trial to avoid paying. CoScreen has a promo until May in which its Pro tier is free, but the advertised price is $18/month.
The superior performance and polished features of Tuple outweigh its onboarding friction and make it a clear winner over CoScreen for pairing.
We are excited to see where CoScreen takes its product, as it does facilitate multi-user collaboration well. Currently, inconsistent display quality and delayed feedback hamper the experience for those looking for a seamless pair-programming experience.
For now, this means we recommend Tuple for pair programming.
If you’re looking to give a newer tool a try, CoScreen is absolutely worth investigating.
Here are a few blog posts and podcasts Striders have created on the topic of pair programming. We hope you find them helpful!
- 5 Steps to a Good Pair Programming Experience
- Paradise: The Perfect Pairing Station for Agile Software Development
- Episode 4 of the Rabbit Hole: Pair Programming
- Episode 127 of The Rabbit Hole: Remote Pair Programming with Ben Orenstein
This post was originally published on May 17th, 2021 and was updated on May 19th, 2021 based on updates made by Tuple.