Remote collaboration and teams
When teams are distributed, it is important to find ways to build constant communication and gain the benefits that might otherwise be gained by working together in one room. This can be challenging. As we move towards more mobile and nomadic work styles (see this interesting set of articles from the Economist), and as development and other teams are scattered around the world, this becomes increasingly important.
The primary purposes for having people sit together for development or other work include promoting the team mentality and relationships between team members, constant communication that promotes frequent but but typically short interaction, and the free flow and transparency of information. All of these can be obtained with remote workers using the right tools, and with the right mental leap and cultural shifts.
One of the key elements is Presence. When you share space with someone, you can see if they are sitting at their desk, and you can see from their body language if they are intently focused on something. We need a way to convey this in situations in which people are not physically together. The status and mood statements provided by most Instant Messaging systems can do this fairly well, if they are reliable and are used actively. A good IM presence indicator should tell if a person is available, online but busy, online but should not be disturbed, or offline. If the person can add text to this, using a mood line, or in some systems just as custom text on the status, this can add additional information for others. A key element for all of this to work, though, is that the presence has to be reliable. Skype’s presence indicators, for example, aren’t reliable. You don’t really know from a status indicator in your contact list if that’s really the status of the person, or if it just hasn’t updated. The same result happens when people don’t update their status (a failing I have, actually). Effective remote team work takes the extra effort to use the tools to communicate in ways that would be inherent in physical proximity.
Another element lost when people are not physically together is the constant give and take, the chatter of people working together. This constant communication is an element of status, telling people what you are working on, how it is going, and whether or not you should be bothered at the moment. Another piece is a constant awareness of what is going on in the team. Periodic meetings, even daily, don’t really get this. The constant chatter of co-workers in close proximity is also important for team building. Most of this can be obtained using micro-blogging services. This makes the chatter easy, quick, non-obtrusive, but available to everybody in real time even if it isn’t aimed at them. Services like Twitter or Jaiku can do this, but a service that is aimed at teams, like Yammer, is better.
I was skeptical of micro-blogging as an effective tool, until I saw it in action. I invited a hand full of coworkers to Yammer, thinking they would say “Cool, but why?” Instead, within a very short time the few people I had invited turned into around 50 people, many of them enthusiastically using the service. Within a short time, I learned a couple important things that were going on in the work of people I don’t talk to very much (I’m not in the same city as they are). I was amazed at how quickly the tool was picked up, and at how well it simulated hearing things in the hallway or other situations in which in an open office environment you would hear conversations between other coworkers.
Of course, not all conversations should happen around the water cooler or in the hallway. Sometimes you need more indepth conversations, or you need privacy. IM is still the way to go here. It is important that IM have a way to archive and search old conversations, that it be really easy to use, that it allow mutliple people in the same conversation, and that it be a part of your working culture.
I should note that not all of the conversations that will happen on micro-blogging or IM services are going to be directly work-related. In fact, you want to have a healthy ratio of personal give and take, joking, community building kinds of activity going on with these. That’s the sort of thing that goes on when a real team is together, and it is important to get the same type of community buzz going on remotely.
It would be helpful if these tools would converge. There are likely other ways to accomplish these goals. IRC and other IM type systems that let you post comments in a “room” that is available to everybody might be part of it. But you need to be able to subscribe to and follow multiple tags, people, and areas at the same time without switching contexts. It has to come naturally. The tools I mentioned are headed in that direction.
It would also be good to seamlessly tie voice and video to these mediums of communication. Sometimes text isn’t working, and its best to pick up the headset and go to a voice chat. Skype does that well. If Google would make Google Talk cross platform maybe that service would work for this as well. I am not a big fan of video (you don’t need or want to know what I’m wearing while I work), but for some people that would probably work best. Sometimes face to face meetings are required, and its best to hop on a plane (if necessary) and go sit down for a face to face talk. But for the vast majority of everyday work, there isn’t any reason that distributed teams can’t get the same results as teams sitting together.