Tuple, the New Hero of Pair Programming?

Update #1: Since the original writing of this story, they have addressed the following: intermittent freezing, added 3 person viewing, disabled rick-rolling (auto link opening).

Update #2: With this recent announcement from Slack, Tuples importance has grown. Read on to check out our take on this new screen sharing tool!

The continuing saga of pair programming tools has been a fairly interesting ride since the demise of ScreenHero. We covered the state of things in our Guide to Pair Programming Tools but that was over a year ago now.

While there have been some interesting new apps and ideas, nothing has taken the place of ScreenHero. ScreenHero was considered the gold standard by those of us that work at Zeal. That is until now.

A Fallen ScreenHero

Why are we looking for a tool to replace ScreenHero? Because it worked so well for us and our workflow. ScreenHero supported all participants to control one screen with fairly low latency. This allowed for the following:

  • Driver swapping (Both people could control one screen)
  • System swapping (Could swap whose system we were working on)
  • Shared context (Switching between coding tool and browser)

There were shortcomings for sure, but the good far out-weighed the bad.

The Dark Age Without a Hero

Since ScreenHero had fallen we were forced to find new tools. There was no consensus reached at Zeal. Depending on the client we were working with we would use whatever made the most sense. Sometimes that was Slack, sometimes it was VSCode Live Share, sometimes Zoom and so on.

Live Share with VSCode was really interesting but it locked you into their tool and you would lose a shared context when switching to other applications (namely a browser in our environment).

While Slack never fulfilled all of our requirements it did add some nice features. Well, one… a pen. It was quickly a favorite of many. It made it easy to highlight what we were talking about, well… it allowed the viewer to highlight things (sometimes the drivers cursor would disappear from the viewers screen).

Slack’s platform was clearly no longer a pair programming tool. It was just screen sharing with a little feedback added. While the stability increased it still suffered from frustrating bugs (as mentioned above).

A New Hero of Screens Appears

Some time around Slack killing off ScreenHero Ben Orenstein and friends decided to start work on a new tool. We recently got into their Beta program for their new app called Tuple. I was a little skeptical that awesomeness can come out in such a short period of time, but it has.

Tuple’s Super Powers

There are so many things to love already. First it satisfies most of our original loves of ScreenHero.

  • Dual control
  • Minimal lag
  • Security of code/communication
  • Full keyboard support (e.g. application switching)
  • Context switching awareness (e.g. when we bounce from editor to browser)
  • Audio support
  • Editor/IDE agnostic

On top of this list of features we care about it adds some new amazing features. You can quickly choose your stream resolution depending on what you need and the bandwidth you want to use.


Great SpaceBalls reference…

It has adopted Slack’s awesome contribution, the pen. Tuple’s pen doesn’t draw a smooth as Slack but I like it better because it is easier to draw corners. Tuple went one step further and included a focus ring. It is a single click highlight to draw attention to something.

The app is also now tucked away in the OS bar instead of having something overlay on your screen getting in the way. There is a large bar on the viewers screen for controls but this works well for the viewer.

Tuple’s Kryptonite

Everything isn’t rainbows and unicorns quite yet. It is still beta software at this point. But here are a few things we have run into.

Working over a VPN is laggy. The current project we are working on requires a VPN. The fine folks at Tuple say this drastically degrades the service. While it does suffer a little at times it isn’t so bad that it becomes a deal breaker.

Only screen share for two people right now. They have recently added support for adding a third person. This person can only view (no keyboard control or screen writing available). This is a nice option, but it would be nice to have screen control or at least drawing available.

The switching of guest modes (Control/Pen/Focus Ring & Keyboard Modes) is a little distracting. I almost always want to start with Pen and switch to focus or Cursor when appropriate and I have to go up to the control bar to do that. The same can be said for the Keyboard Control. First I didn’t realize I could turn off my keyboard when context switching locally and in practice I again have to head up to the control bar to manage it. On a large screen it is a little tedious. Would be helpful if I could command + something to switch.

Another hard to use feature is mute. I would like a quick way to get to the mute button. The benefit of not having some overlay controls for sharing/muting is great but there are times when I need a quick way to mute (like when a quick sneeze comes out of no where). This could be solved on the guest machine with a button in the control bar but since the host has no control overlay it would be harder to fix. This is can be solved with a hardware mute (or maybe a software hotkey?) but can be a hurdle.

Complete shared clipboards are missing. They do have a “paste to driver” which if you put in a URL automagically opens their browser and goes to said URL. The auto open can be disabled now. But full clipboard support is on their road map (although further down).

Everyone has to buy-in. Both driver and viewer have to have the software and an account. This is no big deal for a team of in-house developers but does not work for our model if we are working with client developers. When Tuple is out of Beta our partners will be able to buy-in but that is on the aggressive side for our business. I would love a guest version or something similar that would allow for low barrier of entry for our clients.

Conclusion

For those of us that can use it, it has replaced our other tools overnight. This is a huge statement for software that just launched its Beta program. The overwhelming ease of use and improved pairing performance easily out-weigh the drawbacks and Beta nature of the software. The thing that blocks our whole company from adopting is our environment where we are pairing with our customer developers.

We are hopeful for a future which will include a tool that finally replaces our long lost ScreenHero. Tuple seems to be that hero for us.