Problem solve Get help with specific problems with your technologies, process and projects.

Agile development across continents

Software quality is hampered when a development team can't communicate properly. Expert Bas de Baar offers tips for collaborating with a team scattered in different locations.

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.

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:

Dig Deeper on Topics Archive

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.