Agile and geographical distribution
This post is from Agility@Scale: Strategies for Scaling Agile Software Development by ScottAmbler. Click here to see the original post in full.
As your team becomes more distributed your project risk increases for several reasons:
- Communication challenges. The most effective means of communication between two people is face-to-face around a shared sketching space such as a whiteboard, and that requires you to be in the same room together. As you become more distributed you begin to rely on less effective communication strategies.
- Temporal challenges. When people are in different time zones it becomes harder to find common working times, increasing the communication challenges. One potential benefit, however, is the opportunity to do "follow-the-sun" development where a team does some work during their workday, hands off the work to another team in a significantly different time zone, who picks up the work and continues with it. This strategy of course requires a high degree of sophistication and discipline on the part of everyone involved, but offers the potential to reduce overall calendar time.
- Cultural challenges. As the team becomes more distributed the cultural challenges between sites typically increases. Different cultures have different work ethics, treat intellectual property differently, have different ideas about commitment, have different holidays, different approaches to things, and so on.
The practices that you adopt, and the way that you tailor the agile practices which you follow, will vary based on the level of geographic distribution of your team. For example, a co-located team will likely do initial architecture envisioning on a whiteboard and keep it at a fairly high-level. A far-located team will hopefully choose to fly in key team members at the beginning of the project, at least the architecture owners on the various sub-teams, to do the architecture envisioning together. They will likely go into greater detail because they will want to identify, to the best of their ability, the interfaces of the various subsystems or components which they'll be building. They'll also likely use a modeling tool such as Rational Rhapsody to capture this information (note that it is very possible to use CASE tools in an agile manner, and that some agile teams in fact do so as the 2008 Modeling and Documentation Survey shows).
Geographically distributed agile teams, at least the effective ones, will also use tools which reflect the realities of agile geographically distributed development (GDD). The Jazz platform tools, particularly Rational Team Concert (RTC), are developed with agile GDD in mind. In fact, the RTC team itself is an agile GDD and they use RTC to develop RTC. Although index cards are a great way for co-located agile teams to capture high-level requirements such as user stories, you need an electronic strategy for a GDD team. RTC also supports communication between team members, distributed debugging, and many other features which distributed teams will find useful.
Interestingly, the Agility at Scale 2009 survey found that it was quite common for agile teams to be geographically distributed in some manner:
- 45% of respondents indicated that some of their agile teams were co-located
- 60% of respondents indicated that some of their agile teams had team members spread out through the same building
- 30% of respondents indicated that some of their agile teams were working from home
- 21% of respondents indicated that some of their agile teams had people working in different offices in the same city
- 47% of respondents indicated that some of their agile teams had team members that were far located