Best practices for communication of distributed agile teams

Having everyone sit together improves the productivity of your agile team because everybody can speak to each other at any given time and get questions answered  fast, and it’s easier to see what everybody’s doing and be on the same page.

However, it doesn’t mean that distributed teams can’t perform as good as collocated team, one way to achieve that is by using the right tools to make your distributed team seem like they are in the same room and so ensure effective communications.

Through the years we’ve used many tools to improve and facilitate communications, but sometimes we have so many that we either overuse them and/or use them ineffectively.

This causes two main problems:

  • The person you’re contacting gets unnecessarily interrupted, meaning they’ll lose focus on their task and might take more time on it.
  • Task requirements and statuses fall through the cracks.

Below you will find a guide of which tools to use and when to use them to communicate effectively with the team. For semantic purposes, by communication we mean all type of communications, including documentation, status reports, knowledge sharing, pair programming, and so fort.

Use Phone/Cell Phone to reach somebody to communicate critical messages

When calling people on their phone/cell phone there’s a greater chance that they’ll answer, but it also means that there’s a greater chance you’ll interrupt them. So, use the phone only for the following:

  • Contact somebody in the team about something really critical
  • Quickly reach the client to ask a question

Use Slack (or any other chat tool) for poking people or supporting conversations not related to requirements

At first, Slack seems like just another chat tool, but it offers a variety of integrations that can help with our day to day tasks. However, you need to be careful of how often you use Slack to communicate, since it can easily become a distraction for team members.

It’s also easy to end up casually discussing important task details and requirements on Slack with the team, but it’s hard to keep track of those once the subject is buried under new conversations. For this reason, here is a list of what Slack should mainly be used for:

  • Poking people, to draw the attention about something important.
  • Supporting conversations in written between the team, when this is not related to requirements.
  • Notifying general matters not related to tasks.
  • Getting notifications from 3rd party systems, by using specific Slack channels.

Use JIRA for communications about tasks

JIRA is an excellent agile project management tool, it allows you to customize your agile development workflow and coordinate tasks very effectively. Since JIRA is used to specify the tasks under every user story, it should contain documentation about the progress of every task, so everybody has visibility over what’s going on. Use JIRA for:

  • Specifying requirements in written.
  • Documenting conversations about tasks.
  • Sending status reports about tasks.

Use Confluence for documentation

Confluece is a great tool to store documentation of projects. Use this system to:

  • Create micro sites for every project and keep all documentation organized and accessible by the team.
  • Document sprint objectives, including what you are planning to demonstrate at the end of the sprint.
  • Document standards and procedures.
  • Document how to do things.
  • Save Knowledge Sharing Rituals (KSRs).

Use GoToMeeting to go over requirements

GoToMeeting is a great conference platform to share screens and host meetings. It offers great screen sharing resolution. Use this system to:

  • Go over requirements with the team. This is actually imperative, because written communications are not enough to keep your team aligned, you must have a conversation about every user story and specific task in your project.
  • Run sprint meetings.
  • Run demos.
  • Run KSRs.
  • Pair program.
  • Pair review.

Use Google Hangouts when GoToMeeting is not available

Google Hangouts doesn’t offer good resolution for screen sharing but it can be used to host meetings where resolution is not that critical, like:

  • Pair programing.
  • Pair review.

Use Google Drive or Dropbox to store documents

We store documents and meeting recordings in Google Drive to collaborate and have everything on the same place, but then we share their corresponding links in other tools like JIRA and Confluence.

Use email only for communications with people outside your team

Usually, tools like JIRA or Slack are closed environments and people require to be registered in order to participate. We recommend using email only to communicate in written with people outside your team. Using it as a communication channel with your team can lead into problems because messages can get lost in the scenery, or get out of context.