80% more people worked remotely in 2012 than in 2005. Last year, 43% of US workers said they spent at least some time working from home. Remote work is on the rise, and modern companies need to adopt tools and policies that allow their employees to participate in the work-from-home economy.
The opportunity to work remotely consistently ranks in the top five of employees’ desired benefits,alongside health insurance and better pay. For companies wanting to attract a more diverse workforce, offering work-from-home can be a key recruitment tool. In fact, 60% of workers would leave their existing job for a similar job at the same pay rate if they were allowed to work from home permanently.
But working with a dispersed team carries its own set of challenges. How do you hold meetings if everyone isn’t in the same office, gathered around the same whiteboard? How do you ensure productivity, and keep everything moving smoothly? How do you build solid working relationships with colleagues who may not even share the same timezone as you?
In this article we discuss the tools that help remote workers overcome these challenges and build successful, productive development teams.
Communication is key
So much communication in the workplace happens outside of formal channels. You’re waiting for coffee to brew, so you ask a colleague how their project is going. You walk to lunch together and vent about a problem you can’t solve. You poke your head over someone’s cubicle wall to ask a quick question.
When your team is remote, this casual communication can’t happen. It’s often easier to make assumptions and guess than contact a colleague who works in a different timezone halfway across the world.
To prevent this lack of communication, remote teams need to build habits that lead to over-communicating, purposefully. Instead of letting team members operate on a “need-to-know” basis, teams need to be aggressive about getting knowledge out of individuals’ heads and into the group brain. Here are some tools and ideas that help us do that.
It might feel like overkill to meet daily, especially when part of the team is ending their day and another is just beginning theirs. But daily standups enforce face-to-face contact, and they lower the barrier to questions.
Pick a time (or two if you’re really spread out by timezones) when everyone on the team can log on to a video call and catch up. Focus on daily tasks and give every team member a chance to speak.
- What did you do since we last talked?
- What are you doing until we talk next?
- Do you have any roadblocks?
Roadblocks are problems or obstacles that a developer, for example, may need help in overcoming. It might be a tough coding problem, an issue with another team or simply not having access to the right database.
While sleep needs to be factored in every day, documentation is available 24/7. I know, I know, no one likes documenting things. But with a distributed team, it’s incredibly important to have an always-available single source of information.
Confluence is great because it fits in with other tools like JIRA, supports code snippets and tracks edits with version control.
A newer documentation tool, Tettra is a wiki built for teams that work on Slack. It helps teams surface and document answers to frequently asked questions. Keeping process documents on Tettra means that everyone knows the plan, even if their team lead isn’t currently online.
A good, reliable, easy to use video conferencing software is a must for remote teams. In fact, I’m pretty sure the rise of cheap video calls is one of the reasons why remote is becoming so popular.
I’ve found Zoom.us to be the best of the bunch because of its reliability, even on poor connections. It also allows you to work together remotely by handing over control of your keyboard.
Pair programming is something that most remote employees will miss from being in the office, but with the right tools you can create the same experience even when you’re not in the same room.
Keep your code in line
When everyone is working from different places and in different timezones, code quality can decrease quickly. It’s easy for knowledge to become siloed, where only one or two people understand exactly how things work or why decisions were made. That can cause problems when trying to deal with downtime, or if an employee is sick or on vacation.
Probably still the best (if not the most confusing) product management tool out there. By tracking everything in JIRA, you can keep the entire team in the loop. Every developer will understand the team’s priorities and what’s coming up next. You’ll never accidentally have two developers working on the same thing with this tool.
It also allows for easy asynchronous discussion. If a developer runs into a problem they can’t solve, or needs help from another team, they can mark their ticket as blocked, and mention another team member. Everyone, including the product manager, knows what’s up.
Github provides a ton of handy tools for developers, and it becomes even more useful for remote teams.
Inter-location code reviews help spread knowledge across offices and remote employees. To review a pull request, the reviewer needs to understand both the history of the code and the new functionality. If something needs to be done at a later date, there are now two people (both the reviewer and the original developer) who can jump in.
Version control means always knowing who did what, when. If something’s changed overnight, version control can show it was Mike from Australia making a commit during his work day. By tracking code changes through Github it’s easy to understand what’s new.
Infrastructure as Code Tools
If you think environment problems are hard to solve when you’re in the same office, try being located across the world from each other. Keep your development and production environments consistent by using Infrastructure as Code principles and tools.
We love Docker for easy, quick, and consistent deployment. It prevents “it works on my machine” arguments by ensuring that every environment uses the same configurations. Instead of relying on a dev-ops team halfway across the world, every developer is empowered design and deploy their own micro-services with confidence.
Develop Team Culture
Remote work can feel lonely, especially for newer employees making the jump from being in an office to working on their own. Having close friends at work has been found to increase our happiness as much as earning an extra $100k a year. Fortunately, there are tools you can use to build culture and camaraderie remotely, just like in the office.
Donut.ai helps connect people together over Slack. You can set it up to pair newbies with long time employees, or just randomly connect two employees together for a “coffee meeting”. It’s a low barrier way to introduce two colleagues that might not otherwise interact.
You can also use a homegrown solution like a spreadsheet to assign and track weekly hangouts. Think of it as a replacement to meeting Jane at the watercooler or bonding over that interesting picture Bob keeps on his desk.
When I worked in an office, we frequently had office lunches, donuts brought in for launches and birthday parties for colleagues. These little fun breaks can get missed when we start working remotely. Delight makes it easy to distribute these perks to remote workers, which lower the administrative overhead for managers. Each month employees can choose perks (from gift certificates to movie tickets or a cleaning service) which are automatically delivered to them. Managers can also give spontaneous rewards for a job well done this way.
The future of work
Offering remote work allows companies to recruit the best developers, from anywhere. Remote employees are more productive, happier and stay longer. There are so many reasons why companies should start setting up for remote work now.
As offices disperse and more companies start to hire remote workers, the tooling ecosystem for remote teams will only become more mature. In the future, we’ll be able to work together just as effectively apart as we do sitting next to each other.