Today I wanted to spend some time talking about our development setup for remote working. It isn't perfect, but it works well for our needs, and will hopefully help you out if you are considering adopting something similar in your company.
What We Mean By Remote Working
Remote working to us means performing the main tasks of your role from anywhere but the office.
This ranges from doing something as simple as answering emails from a coffee shop near your house or on the way into work, to updating our servers while soaking in the sun on a beach somewhere slightly warmer than London!
The reason we encourage and embrace remote work is that we are a results-based team. We don’t care about how long people are sitting at their desks and how many lines of code they produce. We care about solving problems and creating excellent experiences.
Remote working allows us to hire the best people for the job from anywhere in the world. It also allows us to be flexible with our staff so that we can keep people who want to work here but whose circumstances means traveling to the office every day might become a problem.
There are nine people on our team. This includes a designer, back and front end developers, and a salesforce specialist.
We all have unique tools and ways of working, but one common attribute we share is positivity and a desire to make any situation we are in better. This is exactly the type of attitude that really helps when working remotely.
Two of our team are full-time remote workers. This means that the majority of the time they will be working outside of the office. In our case, both of them work in different countries from the main office.
The rest of the team can work remotely anytime they wish for as long as they wish.
As I mentioned, everyone in the team has a particular way they want to work and as a company, we fully embrace that and try not to force people into using a particular set of tools. This is incredibly important for remote working, as it can feel very frustrating if you don't know how a particular program you are using is meant to work and your peers are not around to assist you.
We work on small, well-defined chunks of work, and try and push new improvements to our products daily. Work is allocated out, but everyone is given freedom to prioritize as they see fit, and we keep meetings to an absolute minimum.
I could write an entire series on how the standard meeting format is broken and leads to hundreds of hours of wasted time in an organization. But I will save that for another time! For now, I will just say that by design we have very few meetings, we like to move fast, implement and iterate.
In the place of group meetings, we have very focused chats with relevant people at the time they are needed.
The two full-time remote workers are asked to come into the office a few days a month. This is to give us all a chance to bond as a team (normally over some amazing food).
Start times and End times
We don't enforce a start time or end time for the team in or out of the office. You know yourself that you work better at certain times of the day and we know that is true of everyone. We want people working when they are at their peak mentally.
One upside of not having a fixed start time is that we have had to develop ways to work in parallel with each other. We can't assume that someone will be in at a particular time so we make sure we are not blocked by that fact.
Another benefit is that there is more development coverage for the entire company and if something does go wrong there is a greater chance there will be someone online in order to act as a first responder.
We use the following tools to allow us to work from anywhere.
Slack for communication – We use slack for short updates/questions/chat, it helps everyone get and give immediate feedback
Gmail for email – This allows us to get our emails from any web browser or device.
Skype for video calls – When we do have meetings it is good to have a video in place, historically the company used Skype for a lot of communication so it made sense for us to continue using it.
GitHub for issue and code tracking – We can access our code from a fresh machine in a matter of minutes. We also do code review inside of Github Pull Requests.
Waffle for project management – This allows anyone with access to see how things are progressing at a moment's notice.
Dropbox for file management – We don't need to share that many files between each other and a lot of the time we can use Slack for quick things, more permanent files stay in Dropbox.
1Password for password management – We need to share credentials from time to time and 1Password is the best way to do this.
Because we have information on devices outside of the office it is important that things like 2-factor authentication is enabled when possible and good security practices are adhered to.
I am pleased to report that there are no massive issues with our setup.
In preparation for this article I spoke to our main remote workers, the general consensus was that we have the right people so working remotely isn't that much of a challenge.
Some things highlighted include;
Problem: Not having someone to bounce ideas off.
Solution: Everyone on the team is very quick to respond on Slack or to arrange a Skype call.
Problem: Technical issues related to something the person didn't build themselves.
Solution: The team involved in building it are always quick to respond on Slack.
Problem: Remote team members may take the wrong direction with a task or project.
Solution: Daily contact, early code review, and weekly video calls keep the train on the rails.
We aren't the only team in our company with remote workers in it. Other teams have their own set of challenges and ways of working.
Remote working isn't suitable for every role or every team, but it shouldn't be something that you dismiss without thorough thought as the benefits for your team and your company can be huge.
If you have any questions about our setup or remote working in general, or you would like to share your experiences please do leave a comment below.