# A functioning remote team doesn't happen by accident

Remote work is when the client and the team are in different locations, either the team is in another CodeCarrot office from the client or team members work from a different location for the duration of the project.

Meet in person

At the beginning of a remote engagement, when possible, everyone should meet in person for at least one work week. This is useful in order to get to know the team members better and to develop relationships, which will make it easier to communicate through asynchronous channels in the future.

If possible, it is beneficial to meet in person again throughout the project.

Well-defined roles and workflows

At the beginning of the project define who handles which role, and how to communicate amongst the team. For example, decide whether standups will be done via group chat messages or via voice or video call.

If part of the team is remote, the whole team should work as if it were remote. We should over-communicate. Major decisions regarding the project must be documented online in a medium everyone is aware of and able to contribute to. This means that all project-related communication should be done in asynchronous channels that we already use, such as GitHub, Trello, Basecamp, and Slack. The only workflow difference using these tools when doing remote work is that we communicate all important information asynchronously, so that everyone stays informed.

In person communication during a project usually includes frequent updates on current work and various social interactions. The chat room should be the space where we communicate, so that no one feels left out, especially team members who work remotely.

Team members should also be conscious that asynchronous communication means that sometimes the other person is not immediately available to respond, and not expect them to. Furthermore, online communication lacks the non-verbal visual cues such as voice tone and inflection, facial expressions, and body language. We should be more careful in the language that we choose to use. A good reference is our existing code review guide (opens new window).

Feeling isolated

When working remotely, especially when alone, it is easy to forget how it feels to be immersed in team camaraderie. Video conferencing helps alleviate this feeling as well as occasional visits to the office, or working from a co-working space.

Work hours

We should try to have 4-6 hours (with consideration of time differences) in the work day that overlap between locations to allow for synchronous communication.

For some people, it is sometimes difficult to disengage from work when working at home. Also, flexible hours means that sometime one may work non-traditional hours in the day. We should be conscious to keep to a sustainable pace and take a break away from work.

Tools

Good tools for remote pair programming are:

  • tmate (opens new window) and Atom (opens new window), since they require very little bandwidth and do not lag. Another channel will be needed for voice/video communication, such as a Hangout or Zoom.
  • Screen sharing in Flock when you need access to other software like the web browser.
Last Updated: 11/2/2024, 5:24:11 PM