More and more software engineering teams are moving to a distributed model, where teammates work from different locations, sometimes across the world. Companies benefit from this flexibility. Moving to a distributed model also saves 390 million gallons of gas and keeps 3.6 million tons of greenhouse gases out of the atmosphere every year.
But distributed engineering isn’t without its challenges. These include differences in:
Luckily, faster internet speeds, greater broadband availability, and advances in cloud computing have created a plethora of business software solutions to help facilitate distributed collaboration. This article will walk you through the categories of software most distributed engineering teams will find helpful as well as note which features to look for and questions to keep in mind as you consider your options.
Distributed team members lose the ability to stroll over to a colleague’s desk to chat. That means real-time collaboration requires that everyone use the same instant messaging app.
As a baseline, the chat platform needs to be able to send and thread instant messages. In addition, distributed teams can get a lot of value out of a chat app with timezone awareness so you know what time it is before messaging someone. You can also set statuses showing when you’re on vacation, busy/free, meetings, out of office, and outside work hours. You’ll also want a solution that allows you to search chats and snooze notifications.
Major players include Slack, Google Hangouts, Glip by RingCentral, and Twist. Here’s a good comparison of popular business chat apps.
Depending on your software stack, you might not need to share files or conduct audio and video calls in your chat application. But it’s nice to have the option.
The big question here is whether you can make do with whatever comes free with your other tech stack to save some money. For instance, Hangouts comes free with G Suite.
Project management software is the one true source of information about projects, including updates, status, assignees, due dates, files, etc. Project management software allows you to create, assign, comment on, and upload files to projects, tasks, and subtasks. Notifications let all relevant parties know when things change and remind people when tasks are due.
Depending on your work style, Gantt chart functionality might be useful. Some project management software shows team members’ schedules, tasks, and workloads, which can be invaluable for distributed teams.
If you often collaborate deeply across functional teams, you’ll want everyone to use the same project management software. And as the number of software users increases, it is important to consider how much file storage you need, as that varies across vendors.
Next, ask about what the out-of-the-box reports will look like and how customizable they are. Even if you intend to create your own, it’s helpful to have a starting place.
One final consideration here is whether you want a project management app that’s designed for your work style. For example, Scrum and Kanban software are project management software for teams that use Scrum and Kanban.
Where project management software helps organize large projects with multiple stakeholders, task management software is more like an online to-do list with extra features. In a task management app you can create, set due dates for, and then check off tasks. Most task managers can be used collaboratively, which can be helpful for distributed teams. Keyboard shortcuts and browser extensions save you time adding and checking off tasks.
Major players include Tick Tick, Todoist, Remember the Milk, and Microsoft ToDo. 5 Incredible Free Wunderlist Alternatives Compared is a good resource for comparing task management software.
Many task managers have project management features such as reminders/notifications. It’s also nice to have the ability to add subtasks and make tasks recurring. Distributed teams, in particular, may want to assign tasks and subtasks to other users, comment on tasks and subtasks, and upload files to tasks and subtasks. It’s also nice to have the ability to type in due dates and other commands and have the software parse them through natural language processing.
You might think that if you’re using project management software then a separate task manager is redundant. And that’s true, to an extent. Still, many people (myself included) use both. Even though I use Asana to track projects, I manage my daily/weekly to-do list with Todoist because it’s easier for me than trying to use Asana’s to-do list functionality.
Incident response tools test system security and monitor networks, applications, infrastructure, and endpoints to detect and resolve intrusions. These tools alert stakeholders of security breaches, unauthorized access, malware, and other abnormal activity.
It may be worthwhile to invest in a tool that helps automate remedying breaches, or it might be fine to have a tool that guides users through pre-set resolution processes. It’s also useful to be able to connect remotely to and isolate infected machines.
Consider the technical literacy of all potential likely users before you buy. Some incident response tools are geared more toward consultants than in-house operators and may have features you don’t want to pay for.
Bug tracking software can be similar to project management software, but it’s geared more toward IT and development teams specifically. It runs the gamut from places to track tickets to tools that detect and track errors automatically and in real-time.
Bug tracking software needs to track the status of each bug or issue, who’s currently working on it, and its priority and deadline. You’ll also need a comments field for each bug for the times when multiple people are working on the same issue and need to hand it off.
Creating a ticket needs to be really quick and easy. And whatever solution you go with should support robust and accurate search functionality. You’ll also want a way to easily find duplicates. This can happen through search, or some apps will try to automatically merge similar errors.
What good is a bug tracker if no one pays attention to the noisy alerts and notifications coming through? If the default setting is to send an email for every status change and this can’t be changed then you’ll start seeing people ignore the emails.
Some bug tracking software offers various views to easily visualize a project or sprint’s progress, such as kanban boards or calendar views. Support for multiple types of views in the same app is nice.
Another thing to consider is whether you need separate systems for bug tracking. For instance, at Clockwise we use Sentry to track backend and frontend errors that we weren't expecting. It’s got some great functionality like telling us which commit it thinks led to the bug. But it doesn’t track customer bugs, so we use Asana for that.
While chats and phone calls are great, sometimes it’s really helpful to see someone’s face while conducting a conversation in real-time. Video conferencing software helps bridge that gap.
Some of the video conferencing or virtual office software providers allow participants to call into a meeting toll-free from their phones. It’s also nice when you can attend or setup video calls from native apps. Chat and file sharing from within the app is nice, as is being able to record your conversations. Some options will store your recordings in the cloud.
Who all is going to be using the video conferencing software and for what? If your marketing team is going to be using it for webinars, for example, then recording, screen sharing, polling, and the ability to dial in are going to be very important. On the other hand, if you’re just using it internally for the engineering team, you may not need all those bells and whistles.
When working with design on mockups, wireframes, prototypes, interfaces, animations, and more it’s great to have design software that enables multiple users to view, comment, and edit a design file simultaneously.
Collaborative design software obviates the need for designers to have to send developers source files, design specs, fonts, images, SVGs, and notes separately. A Design System can store colors with the same names as they are found in the codebase, so designers and developers speak the same language.
Design software will ideally offer a place for designers to write notes to developers such as instructions, exceptions, text styles names, font feature settings, and GitHub URLs. Browser-based access beats having to download apps. Version control is also pretty important.
Some design software is geared more toward apps and prototypes, while other software is better for front-end website development. Keep your cloud storage needs in mind when choosing software, since distributed teams are going to need to keep as much as possible in the cloud.
On a distributed team you’ll probably want everyone to use a web-based real-time collaborative code reviewing tool. This helps a team more easily come to an agreement on requirements, design changes, and compliance burdens.
Major players include Collaborator, Review Assistant, CodeScene, Visual Expert, and Gerrit Code Review.
Automated notifications keep things moving on time, and syntax highlighting and colored differences are great in any coding tool. It’s also nice to be able to comment on specific lines. Some tools offer review templates, and others allow you to customize them with your own fields, checklists, and participant groups.
The main thing here is to pick a tool that fits into your existing workflow instead of trying to adapt your workflow to an app.
So that’s the software most distributed engineering teams will need. Again, not every team will need all of this software. And some teams might find that a single solution affords them the benefits of a few of the software categories discussed here.
One more tool that you may find helpful for leading distributed engineering teams is Clockwise. We help you find more Focus Time for heads-down work by moving your meetings to the least-disruptive time for everyone on the team. We’re time-zone aware and will update your Slack status automatically so your colleagues know when you’re in a meeting or trying to focus.