Five Tips for Distributed Agile Teams
Actually, this is six tips because my first tip is really about deciding to use distributed teams…
Some in-house studies that I have been privy to have shown 2-1 or 3-1 productivity difference between good co-located teams and “good” virtual teams. Creating a true, high-performance virtual team is incredibly hard emotionally, incredibly time-consuming, and costs a lot in terms of tools and travel. If this is being done for convenience of the team members or for cost savings, it’s a bad idea. The only good reason to have distributed teams is if there is a compelling strategic reason that trumps the hit you will take financially and morale-wise. (That was tip “zero”.)
That said, it is worth trying is to create an environment as close as possible to what you would get with a co-located team. To do this, here are some things to try:
1. Set core hours (at least 3 contiguous) every day when everyone on the team, regardless of time zone, will be at work simultaneously. If you have a globally distributed team, this will mean that some team members will have to make an ongoing personal sacrifice to be available. This sacrifice should be compensated financially. Avoid rotating the core hours in the mis-guided idea that it is better that everyone is uncomfortable some of the time vs. some being uncomfortable all of the time. It is much easier for a team member to get used to a consistent schedule and although initially there will be discomfort for some team members, they will (relatively speaking) get used to the new schedule.
2. During core hours, use a good video conferencing tool (e.g. Office Communicator), in an always-on state for all team members – be in the same space at the same time. Cameras should be set up so that it is possible to see an individual’s facial expressions, yet also to allow that person to move around and still be in-view. The video conferencing tool should have good full-duplex audio so that no one ever gets cut off because someone else is louder.
3. During core hours, all team members agree to forego the use of headphones or anything else that would prevent them from instantly being aware of something happening with any of the other team members. Again, for some people this might be quite a sacrifice. The idea is that communication is paramount for agile teams and anything that isolates one team member from another will hinder communication.
4. Have a live update task tracking tool that all team members use. (Most agile team management tools that I am aware of do not work because you have to refresh to see updates. Cardmeeting.com is a decent virtual wall that has live updates.) Any task-switching should be visible on this tool either through a color change, an audible cue, or a movement. So if I complete a task and start on a new one, everyone else should notice this immediately even if I do not actually say anything. The team members should get in the habit of using this tool even outside core hours.
5. Have a second (or third) monitor for every team member that is dedicated to the always-on communication tools (video conferencing, task tracking). These always-on tools should _never_ be covered by anything else. All the real-time communication tools are useless if they are not constantly visible. If your team members currently have two monitors, then get them a third for these tools. There should never be any excuse for a team member to hide these tools.
Basically, these suggestions are designed to maximize the quality, bandwidth and minimize the latency of communication among the team members. If you have a distributed team, and you try these things, please let me know how it works for you!