They claim the benefits of distribution are cost reduction, availability of talent, and scaling up/down with knowledge retention.
They claim their approach accomplished the following results on a relatively complicated system with 100k+ lines of java code.
- 95% of defects found within the iteration a feature was developed
- only 50 defects found in acceptance phase
- less than 1 defect for kloc
- 15 function points delivered per developer per month. Note that Mike Cohn has published results of a small co-located team that achieve 16 FP/dev/month
- Bring the Indian team to Holland for 2 iterations starting the 2nd iteration. Establish personal relationships, shared agile value system, common mindset, mutual respect. My team at Envysion successfully used a similar approach; we had the Chinese team members on-site with the client for 2 months at the beginning. See my previous post for more info.
- A few people from each site travel to the other location every 2 months or so to maintain the bond.
- Staff with equally skilled people in all roles in both locations
- Use video conferencing for daily stand-up meetings, retrospectives and planning meetings. The sprint demo was done only by the Holland team because stakeholders wanted it presented in Dutch language.
- They started with a single team, then when they expanded to multiple teams, they seeded those teams with people from the first team to maintain the culture.
- They maintained discipline to follow XP practices, including pair programming
- Had a clear and disciplines Definition of Done for each sprint, which included 90% unit test coverage and fully automated functional and regression tests