When you get to code together remotely, you are up for some good results and problem solutions. When your remote coding setup is trash, your coding session will be trash or close to trash.
The way you usually shape your organization's coding sessions will determine the best tool you should use.
If you are like 90% of developers, you are probably used to one of these remote coding setups:
- joining a video call and sharing the screen
- using a code-sharing software solution like VSCode Live Share
These are valid options. However, in some cases, you might prefer other tools, or a combination of tools, especially if you'd like to level up your remote collaboration game.
Most of all, apart from an open-minded and relaxed attitude, you'll need good video and audio. Audio is probably even more important, although the video has its benefits sometimes too.
I had a powerful Linux machine some time ago that would produce really bad sound jumping between very low and very high. If you have any disorders like this it will be a big displeasure to work with you.
Throw the machine away or fix it (like fix the configs or buy yourself a headset that works with it).
Again, if you feel down or drained, it's probably not a good time for a long co-creation session, so sync on each others' well-being and be open about it.
So let's look at some other options. And most importantly, let's see which options are most useful for your use case:
- simple call
- sandbox coding
- editor sharing
- total mutual control
- knowledge sharing
These are some general categories, but tons of tools fall into them. Let's look at these general categories with examples of the tools you'd use there.
A simple call can be anything using Zoom, Google Meet, or Slack huddles. This type of software can be a video or audio-only tool depending on the social energy you and your team have left.
Those are often used to do casual talking, aligning, or some over-the-shoulder-looking "pair programming" where someone shares their screen and 2 (or more) developers try to solve a problem.
Codepen, replit.com, and thingies like code sandbox.
They are great to have an environment set up very quickly in order to do some exploration coding or a coding practice session or similar exercises that start from scratch or from a template in an isolated environment.
Usually, this is not a setup that solves your actual problems at work.
This is probably the most common way to get together and do some coding in a professional environment.
Everyone uses VSCode, so just spin up Live Share. Even people who are not using VSCode usually will be able to join via a browser. I experienced some minor pains in the past getting it to work, but eventually, it does work quite well with VSCode.
Code With Me by IntelliJ is a little bit different though. It spins up a whole new virtual environment on the other person's computer if they don't use the (costly) RubyMine IDE as their main development tool. I experienced quite a bit of problem with Code With Me, the times I tried it with others, we just gave up because of connection issues or other bugs.
total mutual control video call
Another interesting option is software that allows you to fully control the other person's computer.
I found that this has added benefit when you do structured pair programming, let's say with a driver and a navigator.
With a conference tool like Zoom, you can take over control over the whole screen of your sparing partner and write code, operate an external terminal, the OS configs, use the browser to search stuff, or leverage whatever third-party tool you use that is useful to develop the piece of code you are working on.
You cannot achieve this with VSCode Live Share or IntelliJ's Code With Me, where you are limited to just the functionality offered by the software tool.
Last but not least, you might want to share what you have recently learned or built with your peers. Or you might want to live stream some code to your colleagues.
You can use most of the tools above for sharing knowledge internally.
But let's take this opportunity to introduce another tool: webinar software.
A browser-based SaaS like WebinarGeek (disclaimer: I'm a WebinarGeek) allows you to do some badass knowledge sharing:
- structure your content conveniently beforehand
- share your screen
- add interactive elements to keep your workmates engaged
- have a channel to display your content in one place
- easily protect your videos to be only viewed by your company members
- your friends can come on stage and be part of the recording or can watch in the dark, just participating in the chat if they like
We and a big portion of our thousands of customers use it for exactly this. It's a great mixin'.
The curious coders will also discuss and demonstrate this stuff live here: