Surprisingly Effective Tools for Remote Software Development

Alfie Tham
TribalScale
Published in
5 min readJun 4, 2020
Photo by ThisisEngineering RAEng on Unsplash

As the pandemic swiftly changed the way the world works, we at TribalScale have been able to transition into working completely remotely, while continuing to maintain a high performance level that we can be proud of.

In this part 2 of this two-part series, let’s take a look at some of the ways we use tools and technologies to help make software development highly effective for a fully-remote team. As with Part One, keep in mind that technology and tools are mainly a means to getting a job done well.

Getting the right tool for the job surely helps get the work done better, saves time, and reduces wasted efforts. However, I’ll only discuss the ones I find more specific to software development, and the ones that are more obscure and interesting.

In other words, these are remote collaboration tools that you might be pleasantly surprised at how effective they can actually be.

Whiteboards

We at TribalScale love our whiteboards. A lot of the walls at our offices are huge whiteboards. That’s where we share ideas, discuss solutions, and settle heated debates. In the remote world, we’ve used whiteboarding tools such as those that come with most video conferencing applications. We’ve found that the very basic ‘pen and paper in front of the camera’ method works fairly well too as it is very quick and expressive.

Team Voice Chat

How shall we keep remote teams close throughout the day? When it comes to working closely within a development team, we found an interesting solution for voice chat that works really well — Discord.

Photo by Florian Olivo on Unsplash

Discord has been widely used within gaming communities to discuss and collaborate on games. We found that it works pretty well for collaborating on building products too! With the Discord app, team members can quickly jump between different groups while being able to see what other conversations are going on.

Some of us opted to have everyone working on the same project in the same chat room; up to six engineers in some cases. How could that work? With Discord, you can adjust the volume of others so that you can hear your main pairing partner clearly while still being able to hear the other team members in the background.

Photo by Drew Patrick Miller on Unsplash

This way, the team can be aware of what others are doing in the background. This allows us to pick up if others are changing something related to our work, or quickly yell across the room for a quick question — just like we would in the office! I also like to check in with the teams by rapidly popping in and out of different discussions.

Remote Machines

In some cases, access to a powerful machine while being remote can be a challenge — be it a logistical or cost challenge. Perhaps there were powerful computers at the office that are shared to run renders, simulations, machine learning models, or even a hefty application being developed or debugged.

The first solution are cloud virtual machines. A common offering of cloud providers (such as Google Cloud, Amazon Web Services or Azure), virtual machines can be created on-demand, at the specification that suits your team’s needs. Ranging from a fraction of a processing core, to 160 cores, to over 3,800 GB of memory (yes, you’ve read that right) — you can spin one up and shut them back down as needed.

Plus, you only pay for as much time as you need, by the second. No upfront capital investment, asset management, maintenance, physical storage, nor logistics to worry about.

Android Studio on a cloud Ubuntu VM (top) connected to an emulator on a local Macbook (bottom). Complete with Flutter’s hot reloading (Image by Author)

Secondly, we have remote desktop applications which can be used to access the newly provisioned cloud machines discussed above, or existing on-premise desktops that used to be shared in the office as mentioned earlier.

Remote desktop software has been a lot more accessible with browser-based remote desktop tools such as the Chrome Remote Desktop. Or team members with POSIX-based operating systems (mostly Linux these days) could use an installed remote desktop client like Remmina.

If team members don’t need a graphical user interface, there is always good old SSH. To take the thinking out of the good old SSH command lines, there is a neat Visual Studio Code extension to abstract that and make the experience much smoother. That extension makes it easier and quicker to manage things like the SSH configurations, transfer files, and port forwarding.

Image from Visual Studio Code Remote — SSH documentation

Boosting your software development team

Being remote could pose major hurdles to getting work done as effectively. Thankfully, a lot of software development work allows for ample flexibility when it comes to shifting to a remote workplace. There will be roadblocks as teams move to being remote, but they can be overcome with the right strategies and execution.

Hopefully this tip-of-the-iceberg brief can spark some ideas and conversations around boosting the effectiveness and morale of software development teams that are working fully remotely.

This is Part Two of a two part series on running high-performing remote software development teams. If you haven’t already, check out Part One on building resilient software development teams by focusing on culture, and how that can propel your team into being an amazingly effective force.

For more information on remote software development, click here to speak to one of our experts.

Alfie is excited about the space where technology, business and design intersect, and bringing these elements together to create great products, teams, and businesses. In his day job, he works to build digital products, and grow highly effective teams. His roles in technology and product organizations are typically in the areas of conceptual design, system architecture, and full-stack engineering.

TribalScale is a global innovation firm that helps enterprises adapt and thrive in the digital era. We transform teams and processes, build best-in-class digital products, and create disruptive startups. Learn more about us on our website. Connect with us on Twitter, LinkedIn & Facebook!

--

--

Alfie Tham
TribalScale

Conceptual Designer. Software Engineer. Working to build digital products, grow teams, and right the future.