One of the biggest challenges in remote work is simply making sure everyone has a strong sense of involvement. In this article Steven Baker, a veteran of dispersed agile software development teams, shares his experiences and recommendations for keeping the communication, camaraderie, and personal connections alive in a distributed setting.
When you don’t occupy the same office for the same period of time every day with your co-workers, you can’t walk to your co-worker’s desk, or turn around in your chair to have a chat about what you’re working on. There is no water cooler to mill around get in the loop on what’s happening, and having lunch together is difficult. Differences in location, timezone, and working hours, can all combine to make you and the members of your team disconnected from each other.
This disconnect is difficult for both sides: it’s easy for work to be duplicated, or misunderstood. It’s also easy to get lost in details and disappear when your teammates might have helped you with some of the problems you were having trouble with. None of these problems are insurmountable: they are all easily solvable with a few tools and practices that are easy to adopt. The practices outlines in this article will help your team communicate more effectively, and help everyone feel better connected to their co-workers.
Daily Stand Up
When working on-site, you have a very well defined start to your day: arriving at the office. When working remotely, it’s possible to find it difficult to get started, or find that you don’t really know where to start, or not know what related tasks others may be working on. One way to encourage everyone to have a clear idea of what’s going on around them is to have a quick daily team meeting. This will allow everyone to catch up with their teammates, and is a great first step to encouraging active involvement in the project.
For a co-located XP team, we would have a Stand Up, and there’s no reason a remote team can’t do the same. Of course, the details are slightly different. Some enjoy starting their day with the daily meeting, because it gives them a clear idea about what they should be working on, and how it fits with what their co-workers are working on. A remote team with members in many timezones will probably have to pick a time for a daily meeting that is not first thing in the morning for everyone, but that overlaps the working day for as many people on the team as possible. In XP, we call the meeting a “Stand Up” because we have the meeting standing up to remind everyone that it should be kept short. With remote work, few people are standing up, so extra care and attention may have to be paid to keeping the meeting a reasonable length.
There are many tools that can facilitate this, and unfortunately none of them are great. Skype, or a conference call line, is a good way to have a voice call. If you want to spend some money in order to see your teammates’ faces, you can purchase a product like Adobe Connect which allows many people to video conference in a window that looks like the opening of the Brady Bunch. Regardless of which time or tool you use for your meetings, the act of having the daily meeting is a huge benefit to all members of the team.
One of the things that I advocate for all distributed teams is to have a group chat forum. An IRC room may work just fine for you, but requires additional tooling to allow team members to see discussions that took place while they were offline. Web based tools like 37signals’ Campfire provide private chat rooms, at a relatively small cost. There are also Campfire applications for desktops and mobile phones that allow you to improve on the user experience of the web site, or take your team on the road with you.
Once you have a group chat, it’s important to use it. While I’m not a fan of hard “rules” and strict “process”, your group chat should be made a part of the culture. To encourage participation, make it fun and light. It doesn’t always have to be about work. It’s much easier to feel connected to the rest of your team when you get to know them on a personal level. Talk about the weather where you are, what you’re doing after work, and link to the great articles you’ve read that help you improve your skills at your job.
Perhaps you have an office with only a few remote people, or half of your team is in a single office, it’s still important that the group chat become part of the team’s culture for everyone. This will allow some of the “in office” staff to enjoy some of the same freedoms that the remote workers enjoy, by enabling them the communication tools to work from home from time to time without missing any of the discussions. It will also ensure that the remote workers don’t feel left out, or less important than those who are in the office.
Mailing lists are another great tool for communicating. Open Source projects, which are some of the best examples of successful distributed teams, have been using them for decades to communicate. Mailing Lists aren’t as immediate as group chat, but they give you a way to contact all members of your team in a way that you know will be read and internalized.
Mailing lists are great for things that are important for everyone to see, not just the people who are at their desk right this second. For instance, you might write about an appointment that you have to go to and will be away from your desk: “I have a colonoscopy tomorrow, so I will miss the morning meeting and be unable to sit for the rest of the day.” Another great use of a mailing list is to describe a new idea, or something you’ve found in the code, in a way that everyone gets to see at a time that is convenient for them. Such an email might start out like “I just looked at our five slowest tests, and they all use the FooBaz class, so I profiled it and here’s what I’ve found.”
A team mailing list may not be for everyone. For especially small teams, or for teams who all work on a fixed schedule in the same time zone, they may be a bit heavy. Mailing lists are just one of a number of tools that can be utilized to make remote working easier and more enjoyable for everyone involved.
In a traditional office, you can generally find out what your co-workers are up to, what kinds of problems they’re solving, and how you might help them through passive interactions. The water cooler, walking down the hall, or sharing a table at lunch all provide additional interactions with your co-workers that remote members don’t get. Non-verbal cues are also easier to pick up on when you’re in the same physical location, but are completely lost in remote working situations. You may notice that your co-worker is puzzled by a problem, or frustrated by something, simply by observing their body language, hearing their cursing, or dodging the thrown chairs.
Yammer is a tool for providing Twitter- or Facebook-style status updates. Yammer is closed to groups, so only the people you allow in your group can see your status updates. This allows nice bite-sized communication that is less invasive than group chat or instant messaging. Yammer is great for simple “heading out for lunch”, which will let your co-workers know you’re away from your work without being invasive. When working through a problem you might write “wishing I had a widget that could frobnicate this foobar”, and a co-worker who knows of such a widget might see this and help you out.
One of the benefits of status updates over group chat, is that it’s non-intrusive. It’s meant for broadcast communication, that won’t make your co-workers feel like they need to be present for the conversation before it goes away. It has some benefits over email in that the statuses are smaller bite sized thoughts, which can be ignored if needed, but contain valuable information if you want it.
Team members feeling left out is one of the biggest costs of a remote working team. In order to get the most out of our remote working environment, we have to encourage interaction. The resulting team will be stronger, and more effective as a result. There are many other tools and practices that teams can adopt to help them be more effective, this article just touches on the basics.