It is always more challenging to manage distributed teams. Regardless of development methodology, distributed teams will be less productive than co-located teams. Alignment and communication are harder because distance, time zones, language, and culture prevent a lot of the informal communication flows that occur when team members are located together.
If you are embarking on significant new product development, think long and hard about whether you want to have a distributed team. If being distributed is a constraint that you must accommodate, Agile will give you better visibility so you can correct product issues more quickly.
Best practices for distributed teams:
- Each site conducts a local standup in their morning to address immediate issues.
- All teams join a daily teleconference standup, ideally scheduled at a common work time for all. A video-conference standup is better.
- Each location has a Scrum Master Proxy and a Product Owner Proxy. The proxies synch with their counterparts regularly and learn to guide their local teams and keep them productive.
- Team members visit other sites to deepen relationships and information exchange.
Technology can play a role in mitigating some of the challenges of distance. VOIP and webcams can go along way to overcoming cultural awkwardness and maintaining a co-located feel. It is worth the extra effort to get these technologies working. Distributed teams also need to implement a collaboration tool to function as a virtual task board.
Examples include wikis at the low end and more specialized products like Rally Software, VersionOne, Xplanner.org, and Atlassian Jira with the GreenHopper plugin. There are many other tools, and you should be able to find a solution that fits your needs and budget. As an aside, if you have only one remote team member, the Scrum Master can usually support that person and the team can still even use a physical task board.