Reducing Friction in Multi-Machine Software Development

When your development setup involves multiple machines, switching between them can break your flow. And you’re probably doing it hundreds of times a day.

How many keyboards does it take to write a function?

Turning to a different keyboard and mouse slows you down. Each time, you’ve got to adjust your fingers to a different size, recall how to use a different layout, and then find the mouse pointer again. Ultimately, it’s like letting go of a steering wheel.

It’s not uncommon to see development setups with laptops at all kinds of angles, forcing coders to stretch, twist, even stand and reach up to type or click something in a different environment.

Don’t let disruptions add up

As you know all too well, interruptions when coding have a disproportionate impact on productivity. Major interruptions can take programmers 10–15 minutes to recover from, which makes their impact obvious. But minor interruptions can be just as bad if they’re common in your working day.

There’s no doubt that you’re most productive in front of your primary keyboard and mouse, in an ergonomic position. The ideal would be if you can stay there and work across all of your machines. Can that be achieved?

Virtualisation to the rescue?

Virtual machines could be the solution: eliminate the need for additional keyboards, by eliminating the need for additional hardware.

However, the complexity of setting this up ranges from difficult to impossible (and free to I’d-rather-have-a-real-device-at-that-price), depending on the systems you need. If you can make this work as effectively as having separate, real machines, we take our hats off to you.

But if you’ve got to use actual metal, then what you need is a way to connect one keyboard and mouse to all of your devices.

Control multiple machines with one keyboard and mouse

The good news is this is possible, and there are two main ways of doing it.

Peripheral-sharing hardware (KVMs)

The humble KVM switch has been linking computers since the 1980s. You connect one keyboard and mouse to the KVM, and you connect the KVM to all your computers. Now you can switch the peripherals between them at the press of a button.

It sounds like it could work, but in our experience, KVMs are either expensive or temperamental (or both). And even with unlimited budget, not all peripherals and computers are compatible, particularly when working across operating systems, or using wireless keyboards and mice. They also necessitate a lot of additional cabling, which can make using them become its own disruption. In fact, frustration with KVMs is why Symless was founded.

Clean code from a clean desk

Clutter on our desks is distracting and inhibits creativity. Messy surroundings (like tangled cables) reduce focus and impact on productivity. To work at your best, try to keep your desk space clear, and guard it from being invaded by widgets and wires.

Keyboard and mouse sharing software

Synergy is a piece of software that switches your mouse and keyboard between any of the computers it’s running on. Unlike a KVM (see above), it doesn’t need any cables or buttons, and it works reliably with just about any keyboard, mouse and OS.

Synergy is available for Windows, Mac, Linux and even Raspberry Pi, in all common flavours. Just install it on each computer, and you’ll instantly be able to move your mouse between any of their screens. We automatically switch your keyboard to whichever screen your mouse is on, and activate specific key-bindings (which you can configure) for each system.

Synergy isn’t the only software solution out there, and the others are worth checking out too. When researching your options, make sure you check OS support and confirm there aren’t any lag issues. Sharing across systems is a complex problem; it took us years to work out how to make it seamless.


Don’t break your flow

Working across multiple platforms will always be complex, but there’s no need to sacrifice your time or concentration just to move between them. Synergy helps multiple systems feel like a single development environment, so you can stay focused on coding the next killer app.

Synergy is what we're known for

Learn about Synergy

We make an app called Synergy. If you have any questions, please contact us.