A functioning remote team doesn't happen by accident
Remote work is when the client and the team members are in different locations.
Remote workshops and kickoffs
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.
When this isn't possible we facilitate remote workshops with the same objectives of building team understanding and developing relationships.
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 syncs 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.
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 in-person visits.
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.
Inclusive remote meeting guidelines
We've compiled Remote Meeting Guidelines from various sources to help people feel included and valued during remote meetings that happen over video conferencing software.
Good tools for remote teams are:
- tmate or Tuple and Vim or Emacs, since they require very little bandwidth and do not lag. Another channel will be needed for voice/video communication, such as a Hangout or Skype.
- Figma for collaborative design and communication.
- Miro and MURAL for collaborative whiteboard like space.
- Screen sharing in Slack when you need access to other software like the web browser.