Top developer tips for successful remote working
Tags: team, remote, productivity, collaboration
Published: 2020-06-01 08:35:14

It doesn’t need to be said, but let’s say it anyway; coronavirus has changed the way many of us work. We’ve gone from sitting next to each other every day - sharing a kitchen, sharing coffee breaks and after work drinks - to lugging our monitors home on the Central line, finding a corner of our homes to call work, and communicating through Zoom, Hangouts or your video conferencing tool of choice. 

We’re always hearing that the demand for remote working is on the rise. And yet, many of us still value going into the office: according to the 2019 Stack Overflow Developer Survey, almost two thirds of developers in the UK would rather be working in an office environment than from their homes. The survey lists office environment as a deciding factor when it comes to choosing a new role, especially for women and non binary candidates. So if you’re used to, or enjoy, working from an office, what can you do to make working from home work for you?

Most of our dev team at Digital Theatre have never worked from our Monument office. Over the last month, we’ve had to cope with being interviewed and onboarded remotely, with jumping from video call to video call, and with building relationships over cups of tea that have been made in different kitchens - kitchens that lie just beyond the view you have of your colleague’s home. But we think we’re doing a pretty good job at remote working so far. We’ve put together a list of tools and practices that are helping us remain collaborative, focused and productive right now, and hope to come across others that we can add to our belts in the coming weeks.  

### Having the same working environment

As part of our onboarding and set up process at Digital Theatre, we encourage all new members to adopt the same IDE (integrated development environment) as the rest of the team. This means using our text editor of choice, VS Code, and installing a comprehensive but equally useful list of extensions. It may sound silly, but pairing with a colleague that has a really different working environment can initially be really difficult. You’ll often find yourself trying to understand the layout and configurations in their environment, which takes your attention away from the coding that’s going on. If you’re switching pairs frequently throughout the working day, this time spent familiarising will quickly add up. Having a consistent environment within your team removes this barrier, making collaboration easier and saving valuable developer time. 

### VS Code Live Share extension

This text editor extension allows a developer to share their codebase with colleagues and collaborate with others in real time. Set up is super quick, and team members can join a live share and make changes to code without having to configure environments, install dependencies or even clone a repo. You can give your colleagues full access to the codebase, with permissions to write in the terminal and to view front end changes in a shared browser, or you can set permissions to make their interaction read only. When editing, your teammates will benefit from any editor plugins you have installed, such as auto-complete and linting. There are a few negatives - we’ve found that the user experience can be a bit clunky, with code glitches and users seeing different code on the same page. Also, unless you’re the one who started the Live Share session, your view of the codebase will be based on git history, so any folders or files that are git ignored are invisible to you, which can be frustrating. Overall, Live Share has been a valuable tool for our team. It’s a good alternative from screen sharing in a video call as it allows multiple team members to edit the codebase, therefore giving them an active rather than passive role in pair programming. It’s definitely a tool to explore if you’re looking to improve your team’s collaboration.

### Using two screens

Working remotely has added video calling to the long list of tabs that developers keep open throughout their working day. Constantly moving between your codebase, Slack and a multitude of browser windows can get tiring very quickly, and it’s easy to feel lost and frustrated amidst the chaotic sea of disorganised tabs and windows. Having an extra screen ameliorates this problem, allowing you to keep two windows open, while others are now just one swipe away. 

### Slack

We’re of the opinion that Slack is a building block of any tech team, and this is even more true for teams working remotely. It’s a great tool for communicating on a one to one basis, and also as a group. Creating channels means we can share information efficiently - interesting work-related reads and random tweets are kept out of our main channel but are still easy to engage with. Starting threads stops ideas from getting lost in group chatter, and makes conversations about a specific topic simple to follow and to find later. Slack’s integrations remove the need to keep multiple windows open; having access to our calendars, to the pipeline and to the status of our latest merge request all from the same app is super useful. Its built in calling tool means a face to face meeting is just one click away - no need to navigate away to Zoom or Hangouts. If your team has a subscription, you’ll be able to benefit from group calls and screen sharing, too.

### That's it!

Thanks for reading our top developer tips for working remotely - if there's a tool here you've not tried out yet, we hope this encourages you to give it a go!