Agile development across continents

Agile development across continents

I need to setup a project with people involved from different locations and no way to arrange meetings in just one site. I'm aware about usefulness of early testing, continuous building, version control and code check to assure software quality from early stages. Plus I would manage the process with XP techniques, probably Scrum. Could you please give me some advice? Thank you.

    Requires Free Membership to View

    When you register, you'll receive targeted emails designed to keep you informed of the most relevant information on Agile development, application security, testing & QA, software requirements, and more.

    Hannah Smalltree, Editorial Director

    By submitting your registration information to SearchSoftwareQuality.com you agree to receive email communications from TechTarget and TechTarget partners. We encourage you to read our Privacy Policy which contains important disclosures about how we collect and use your registration and other information. If you reside outside of the United States, by submitting this registration information you consent to having your personal data transferred to and processed in the United States. Your use of SearchSoftwareQuality.com is governed by our Terms of Use. You may contact us at webmaster@TechTarget.com.

The most effective techniques from the agile development methods consider colocation of teams and team members as the ideal situation. However in reality this ideal is seldom reached, people are scattered all over buildings and continents. It may not be a surprise that the biggest risk associated with geographical separation is poor communication.

You can do several things to reduce this risk, independent of which method you end up using.

Try to subdivide your system in components or subsystems with defined dependencies. Assign every individual component to colocated teams of developers. This reduces the technical dependencies of the teams.

For the times that people have to communicate, Alistair Cockburn has a famous diagram that shows the different methods of communication. You can find a version of it here.

Think about daily conference calls, video conferencing, instant messaging, email and Web-based discussion groups. In case it is needed, it may also be wise to put someone on a plane to have a face to face discussion with another team.

When working together, I also recommend using a Web-based document repository, so everyone is working and looking at the same versions of documents (Google has one for free associated with every account.)

You have the right idea about early testing, continuous building, version control and code checking. Of course, everyone should be able to access the same versions and information, so also in this area a shared repository is needed.

And finally, when assigning your tasks across the teams, let the location of the users be associated with which team gets that part of the system assigned. In other words, make sure the users that provide the input are colocated with the team that handles that part of the software. This is important, as in this way you make the most use of an agile method.

More information:

This was first published in March 2007