More and more online businesses are building remote development teams to accommodate developers who work outside corporate headquarters. This distributed approach to work is still relatively new, but it's catching on fast as companies seek the best talent possible. As such, a wide range of collaboration tools for bringing developers together are appearing rapidly in the marketplace.
A 2016 report by Gallup found that 31% of employees in the U.S. work remotely four to five days each week — a growth of 8% since 2012. While data from Stack Overflow suggests that 64% of developers around the world work remotely at least one day a month and 11% work remotely full time. Gallup's 2017 survey of 64,000 developers also showed that 53% of respondents felt remote options were a top priority when considering a new job.
Of course, developers find many benefits to remote work, such as no commuting and the opportunity to set up their own ideal work environment. For companies, this means they're hiring the right talent for the team, regardless of their location.
When you're not working in an office, however, communicating with colleagues becomes a completely different beast. No strategy is perfect, but using a variety of collaboration tools helps your team communicate smoothly and build better APIs. The tools also allow a company to work with other developers who want to use its APIs.
Our company was founded in 2015 and since then, the development team has grown and spread across offices in many different countries. Though we're based in Dublin, Ireland, most of our developers are located across other parts of Europe and North Africa. We've also got staff in India and the US.
From the start we knew that establishing the right communication practices was necessary to keep everyone in the loop. Through our firsthand experience of building our product and API at Rebrandly, we've tried, tested, and fallen in love with various collaboration tools. Here are some of our favorites, and how we use them to communicate clearly and increase productivity despite our team's physical separation.
We each use Trello for personal calendar reminders of periodic maintenance tasks, as well as our day-to-day task management.
Our main Slack channel is where we share information across the whole team. The marketing team shares news about media coverage, developers share news about updates, plans, and new features, and our support team share positive reviews and feedback. Slack is the place where our whole team can chat and bond.
Beyond this, those of us on the development team use Slack channels to centralize the way alarms are delivered to us.
Figure 1. An example of an alert used below. The company includes emojis to help offset any panic.
We also chat with the support team in Slack to communicate any progress we've made on fixing bugs.
Figure 2: An example conversation developers have with the Slack support team.
The developers also have our own dedicated channel, where we communicate about fixes between ourselves.
Figure 3. An example of an automatic message that we use to communicate when a problem is solved.
We use Slack to let each other know when our web services are being deployed in our test and production stacks.
Some of our development tools, like Jenkins, SNS, AWS Lambda (custom), and GitLab, are integrated with Slack, allowing for quick notifications and smooth collaboration among the team. Next is an example of how developers integrate Gitlab.
Figure 4. How developers integrate GitLab.
We use Google Docs a lot to keep track of our documentation. Our private API endpoints documentation is stored here. The comments function provided is particularly useful, especially when we have to do complex migrations that could harm the system.