The Best Tools for Remote Development

Brian Fernandes

March 14, 2022

Remote development is clearly here to stay, and when you need to collaborate with your team, starting a Zoom meeting, Slack call, or hangout (er … Google meeting) is probably something you think of doing first. Today however, several developer focused solutions that are far better suited to remote development are available—which one do you pick? This guide will highlight some of the best tools for remote development and help you make that decision.

Disclaimer: As you read this guide, you might wonder how I know an awful lot about these solutions. Well, I work for CodeTogether, which is one of the solutions covered in this guide. What you see below is the result of our continual study of this landscape, to see how we stack up against our competitors, and decide what we need to focus on next. This guide aims to be factual, and in an effort to remain unbiased, I do not delve too deep into the quality or capabilities of each feature.

Screen Sharing Software or IDE Plugin?

While the vast majority of remote pair programming tools are IDE based, there are a few that are based around screen sharing, such as Drovio (formerly UseTogether), Tuple and CoScreen. While Webex and GoToMeeting are known for being CPU intensive, these new screen sharing solutions are more performant and flexible. For instance, they support higher quality video and multiple cursors, making them more suitable for use when sharing an IDE.

Screen Sharing Disadvantages

However, nothing changes the fact that everyone in the session can only focus on one piece of code at a time—they can’t explore other areas of the codebase, run independent analysis, or make changes elsewhere. They have to be familiar with the IDE the host is using, and if the host jumps to another application, everyone loses access to the code. These fundamental screen sharing constraints make true collaboration with such solutions impractical. This guide will focus only on IDE based solutions.

Okay, so let’s move on to comparing the IDE based solutions. We’ll look at what IDEs they’re compatible with, how secure they are, how capable the guest dev experience is, additional features like audio/video calling, and finish up with a pricing comparison.

Compatibility—Is Your IDE Supported?

Perhaps the easiest way to narrow down your choices is to check the IDEs supported by the tool. Every developer wants to use their preferred IDE with familiar layouts, themes, UI, and most importantly, key bindings. Does your entire team use just one IDE? Or are there more IDEs in the mix? Even when joining sessions, being able to use their favorite IDE would make a significant difference to a developer’s productivity.

Being able to join sessions from a browser comes in handy when a developer doesn’t have access to a work machine. Maybe you are on vacation, sunbathing on a beach, but your boss doesn’t like your choice of words on the home page; got to get that fixed ASAP, right?

Eclipse

IntelliJ

VS Code

Browser

Eclipse

IntelliJ

VS Code

Browser

Eclipse

IntelliJ

VS Code

Browser

Eclipse
1
IntelliJ
2
VS Code

Browser

Eclipse

IntelliJ
3
VS Code

Browser

Eclipse

IntelliJ

VS Code

Browser

Eclipse

IntelliJ

VS Code

Browser

1 Most recent update was in January 2021.
2 Alpha release from May 2020, does not appear to be in active development.
3 Most recent release in October 2020, does not appear to be in active development.

With Code With Me, participants join using a special client that is downloaded the first time they join a session. The client is very similar to an IntelliJ IDE, but you cannot participate in the session using your regular IntelliJ IDE that you use for local development.


A multi-IDE CodeTogether session

Security—On Premises, SSO and End-to-end Encryption

There are several security considerations that make it easy to disqualify tools that don’t meet your organization’s security standards.

Is the code that is shared end-to-end encrypted? If it is, nobody can see your code, not the solution provider, nor any attackers in the case of a MITM attack.

No matter how secure the solution claims to be, some organizations will not allow code to leave their intranets. If this is the case, you need a solution that provides an on-premises distribution. For additional security, your organization might also require single sign-on support (SSO), allowing only authenticated users convenient and secure access to the solution.

Does the source code stay on the host machine, or is it transferred to the guests, who may then have access to it even after the session ends?

Projects stay on host

Single sign-on

End-to-end encryption

On-premises
3
Projects stay on host

Single sign-on

End-to-end encryption

On-premises

Projects stay on host

Single sign-on

End-to-end encryption

On-premises
3
Projects stay on host

Single sign-on

End-to-end encryption

On-premises

Projects stay on host
1
Single sign-on

End-to-end encryption

On-premises

Projects stay on host

Single sign-on

End-to-end encryption
2
On-premises

Projects stay on host

Single sign-on

End-to-end encryption

On-premises

1 If you use the free plan, your source will be hosted in a publicly accessible repository.
2 End-to-end encrypted up to 4 participants only.
3 Multi-server, regional on-premises deployments are supported as well.


CodeTogether’s SSO Integration

Programming Capabilities—How Capable is the Guest Dev Experience?

When connected to a session as a guest, all the tools mentioned below share features like providing access to the entire project tree or workspace, not just the file the host has open. They also allow concurrent editing of files, even multiple developers editing in a single file simultaneously.

Beyond file access and editing though, what are the language capabilities and other IDE features that guests have access to? Do they get content assist and validation, the ability to refactor code, run tests on the host, and access to terminals and consoles for instance? Often, you might find a few language features available—but only in the context of the current file and incomplete, as they are being provided by your local IDE, which may not have the entire project context, or the language and framework support that the host has. These capabilities are hardly useful in a development context, and will be marked absent in the table below.

Content assist

Validation

Quick fixes

Navigation

Refactoring
1
Shared debugger

Shared terminal

Shared console

Shared server

Run tests

Run launches

Content assist

Validation

Quick fixes

Navigation

Refactoring

Shared debugger

Shared terminal

Shared console

Shared server

Run tests
2
Run launches

Content assist

Validation

Quick fixes

Navigation

Refactoring
1
Shared debugger

Shared terminal

Shared console

Shared server

Run tests

Run launches

Content assist

Validation

Quick fixes

Navigation

Refactoring

Shared debugger

Shared terminal

Shared console

Shared server

Run tests

Run launches

Content assist

Validation

Quick fixes

Navigation

Refactoring

Shared debugger

Shared terminal

Shared console

Shared server

Run tests

Run launches

Content assist

Validation

Quick fixes

Navigation

Refactoring

Shared debugger

Shared terminal

Shared console

Shared server

Run tests

Run launches

Content assist

Validation

Quick fixes

Navigation

Refactoring

Shared debugger

Shared terminal

Shared console

Shared server

Run tests

Run launches

1Limited refactorings available
2Via 3rd party extension

Shared Debugging with Live Share in VS Code

Session Capabilities—How Easily and Quickly Can You Host & Join?

Can the capabilities be used anonymously? This might be especially useful when you want to get a quick session going with someone you don’t normally collaborate with, or who just doesn’t have an account yet. How soon after you start the session is it actually usable? How many participants can you have in the session?

Anonymous use option

Immediately available

Maximum participants
51
Anonymous use option

Immediately available

Maximum participants
31
Anonymous use option

Immediately available
1
Maximum participants
50
Anonymous use option

Immediately available

Maximum participants
5
Anonymous use option

Immediately available

Maximum participants
?
Anonymous use option

Immediately available

Maximum participants
20
Anonymous use option

Immediately available

Maximum participants
2

1A client download may be required before the session starts if you don’t have it installed, or if it is out of date.

Communication—Are Audio and Video Calling Supported Too?

When in the session, does the solution provide its own text chat or audio/video calling capabilities? With CodeTogether we initially urged our users to use their existing communication solutions like Slack or Microsoft Teams for voice and video, but several users said they’d prefer an integrated solution. The ability to screen share is definitely useful in some circumstances too, so we added all these capabilities to CodeTogether as well.

Text chat

Voice

Video

Screen sharing
Text chat

Voice

Video

Screen sharing
Text chat

Voice

Video

Screen sharing
Text chat

Voice

Video

Screen sharing
Text chat

Voice

Video

Screen sharing
Text chat

Voice

Video

Screen sharing
Text chat

Voice

Video

Screen sharing

Screen sharing with Duckly

Pricing

As you can see below, all tools offer a free usage tier. I’ve listed the obvious restrictions of this tier, but there are possibly additional limitations as well. I don’t delve into trial period use, where all features are likely to be available for a limited period.

There are also several pricing models, and I’ve taken the cheapest possible per user price for the table below.

Free Tier
60 minutes
3 guests
Personal Use
$48/yr
Organizational Use
$48/yr
On-Premises
$30/yr2
Free Tier
All features

Personal Use
Free
Organizational Use
Free
On-Premises
N/A
Free Tier
30 minutes
3 guests
Personal Use
$50/yr
Organizational Use
$100/yr
On-Premises
$400/yr
Free Tier
All features

Personal Use
Free
Organizational Use
Free
On-Premises
Free
Free Tier
5 public workspaces
Personal Use
$180/yr
Organizational Use
$120/yr1
On-Premises
$100/yr3
Free Tier
60 minutes
6 participants
Personal Use
$120/yr
Organizational Use
$120/yr
On-Premises
N/A
Free Tier
40 minutes

Personal Use
$60/yr
Organizational Use
$60/yr
On-Premises
N/A

1 Sold in 5-user blocks
2 Includes volume discount
3 Volume discounts available for 100+ users

Closing Thoughts

Do you already use one of these solutions? If so, how would you rate it, what features do you find invaluable, what features do you miss? I’d love to hear what you think, especially if you have suggestions for improving the article. You can always email me at  info@codetogether.com or drop me a note on Twitter. I hope you’ve found this guide to be both fair and helpful in picking a solution that would meet your needs. Happy coding!

 

You may also like . . .

Leveraging Software Engineering Intelligence: A Guide for Tech Leaders

Leveraging Software Engineering Intelligence: A Guide for Tech Leaders

Unlock the Future of Software Development with Data-Driven Intelligence Effective leadership in software development requires more than managing teams and projects—it’s about making smarter, data-driven decisions. Software engineering intelligence (SEI) offers a...

The Importance of Real-Time Alerts in Software Projects

The Importance of Real-Time Alerts in Software Projects

In the fast-paced realm of software development, even minor delays or unnoticed errors can escalate into major setbacks, leading to missed deadlines, increased costs, and compromised product quality. Traditional monitoring methods often fail to catch issues as they...

The Top 5 Challenges for Task Management in Software Development

The Top 5 Challenges for Task Management in Software Development

In the dynamic world of software development, effective task management is critical for ensuring projects stay on track, teams remain productive, and high-quality code is delivered on time. However, achieving this can be challenging without the right tools and...