Startups and tech companies looking for top development talent are increasingly turning to a more affordable “distributed solution” of on-site and remote teams of engineers. It’s a hybrid approach we’ve taken at Upwork that’s incredibly effective for getting work done. However, for this to be effective, we’ve found it’s crucial to find the right mix of tools and technologies (and people, of course).
With so many options on the market, what tasking, testing, and collaboration tools should you use? At Upwork, we’ve fine-tuned our distributed teams’ toolbox with technologies and platforms that make our lives easier, keep our code cleaner, and help our productivity soar. Here’s a quick look at some of the tools we love—plus a few from other companies successfully using distributed teams.
Collaborating in a Distributed Environment
Distributed teams of all sizes rely on technology to effectively work remotely. In a recent IT survey, 80% of respondents said they use some tool to support their work, primarily to facilitate communication and collaborative work.
At Upwork, we wanted to establish a workflow that empowered developers to work when they want but were careful to do so without replacing a culture of collaboration. This meant finding the right technology to support both synchronous and asynchronous interactions, and tools to facilitate face-to-face interactions and create a “watercooler vibe” with remote workers.
Empowering Remote Developers
Because a good portion of our team is remote, we’ve checked to make sure they’re equipped with the tools and processes they need to get things done. A few basic requirements we can’t live without are excellent Internet connectivity and professional-grade webcams and headsets for quality conferencing.
We also found a way to make time zones work for us, not against us. For developers located in other places around the globe, we find time with aligned availability and connect with Google Hangouts and Upwork Messages. We also maximize overlapping availability with tools that allow teams to work separately on a project, then synchronize further down the line. This means longer periods of productive coding, plus around-the-clock support if problems arise.
Tools of the Trade
So, what works for us? Our engineering teams are armed with a mix of tools for coding, collaborating, messaging, and more, including:
- Bitbucket, a source code repository and version control tool
- Google Docs for file sharing and document collaboration. Some are worked on daily by dozens of contributors.
- JIRA, Confluence, and GreenHopper for project assignment and coordination. For us, layering all three allowed us to maximize advantages of each, like JIRA for delegating work and creating tasks, Confluence for documentation, GreenHopper’s boards for providing a visual of each team’s progress.
- Upwork Messages, an app that we developed internally for real-time team messaging and group chat.
- Chromebox videoconferencing equipment for meetings, a Google product that makes it easy to use Google Hangouts on a TV
- Jing and Snagit for screen-capture and image sharing
We heard from other companies about what worked for them, too.
SocialTrendly, which is a social media analytics startup, consists of two founders and a remote development team. They found their sweet spot was a mix of collaboration and coding tools that includes Basecamp and Bitbucket for task assignments and code storage, InVision for wireframing and annotation, Bluemix for app hosting, and Reflector for screensharing.
Gaming site Chess.com has a team of 60, and they’ve found that GitHub works best for them as a code repository. They also use Skype for video chatting and international calls and HipChat for hanging out and introducing new talent.
Remember: Technology Doesn’t Replace Face-to-Face
Technology helps us be effective as a team, but it’s only part of the equation.
It’s important to leverage technology to include remote developers as valued contributors, going the extra mile to include them in relevant project communications, meetings, and events. This drives a lot of the day-to-day interactions at Upwork. Working remotely shouldn’t translate to zero face-to-face time, and it’s still important to find people who are the right fit for your company’s culture. Technology can help facilitate face-to-face interactions and better interview processes, which allow you to grow and cultivate a tight-knit team, regardless of location.
Ready to take your team’s productivity to the next level?
With the right tools, a hybrid approach of on-site and remote engineers could be just what your development team needs to reach new heights. Download the Hire Fast & Build Things eBook for an even more in-depth look at these companies’ approaches, plus suggestions for fostering collaboration and the software you might want to use on your own teams.