Site to Site Ambassadors for Offshore Development in Software System
Agile methods stress the importance of face to face human interaction. Even if everyone cannot be co-located, moving some people about clearly helps a lot. It is better to decide to ensure those at all times someone from the US team present in India to facilitate the communication. Such an ambassador already knows the US based people and thus adds his personal contacts to help everyone communicate.
Gossip communication?
One of the main job an ambassador is to communicate gossip. On any project there's a lot of informal communication. While much of this isn't important, some of it is - and the trouble is that you can't tell which is which. So part of an ambassadors job is to communicate lots of tidbits which don't seem important enough for more formal communication channels.
It is better to circulate the ambassadors every few months, since if an ambassador spends too long abroad they lose contact with home. This makes it easier for the ambassadors, who don't want to be away for too long. It also allows more people to get to know the remote team by spending time as an ambassador. In choosing ambassadors it's very important to pay attention to individual needs and preferences. Some people don't want to spend several months thousands of miles away from home, so they shouldn't be ambassadors.
Different levels
We've now expanded this to several levels. We found it useful to send a US developer and a US analyst to India to communicate on both technical and requirements levels. It's also valuable to send someone from India to the US team. The plane fares soon repay themselves in improved communication.
One of the benefits of a business-oriented ambassador on the offshore team is that it helps provide business context to the offshore team. Building software off just a list of requirements misses out a lot business context - developers are told what to do without being told why it's important. That is why it often makes a big difference in doing what is proper.
Project managers as ambassadors
It is beneficial and effective for project managers to spend some time as ambassadors. A project manager's job is to help resolve conflicts and flush out problems before they become serious. Ambassadors are an important part of trust building and gelling across the wire. As a result it's essential to send out ambassadors as early as possible in the project. If a project runs for a while without ambassadors in place, miscommunications and bad feelings will develop that take a lot of work to fix. Ambassadors reduce this risk, but need to be there early on before problems start setting in. Experience working on both side of the telephone line is really important for them to do that effectively.
How the visits done?
Let the offshore analysts come onshore to take part in early requirements gathering sessions.
Let the offshore team visit the onshore location - particularly if it's on a client site.
Entrust some onshore customers and project managers to an offshore site to create an initial release plan.
Let some onshore developers visit the offshore team for the offshore team's first iteration working with an existing code base.
What must be done?
Particular seeding visit is important if you have developers on multiple sites from the beginning. In this case it's important to get the developers, or at least the senior developers, together to build the first little iteration. It's in these iterations that the crucial architectural decisions will get made, it's important to have proximity during this period. Without this you can get a split where different teams make different decisions, or one team makes a decision that the other team doesn't understand. Once the seeding is done, then less intense maintenance visits should be used to keep the contact going. These can be shorter but should be frequent, a one-week visit every couple of months is the minimum for these. We've noticed that it's particularly useful to have a longer contact visit if significant changes occur to the system design. Again they should be focused on necessary tasks, one good task to do with these is a retrospective.
Gifts, particularly those that help spread culture, are always worth bringing. Don't be afraid to use longer and more frequent visits if you sense communication problems between the teams or if a significant issue comes up. We particularly like people to bring gifts of snack food or sweets that are specialties of the remote location.
Keep in touch to buildup trust
The Ambassadors spend several months in the 'other' location and are semi-permanent. This is better, but not enough. There are also needs to be further contacts that involve a wider range of people. These visits help to create and maintain the relationships which need to be in place for remote communication to work effectively.
There are two kinds of contact visits: seeding visits occur early the in the project and are intended to create the relationships, while maintaining visits help keep the relationship going.Seeding visits should be planned for early in the project and should be pretty substantial in length - two weeks is the minimum. It's important for seeding visits to be working trips, since the whole point is to get people used to working with each other, so they should be arranged around some joint task.
Conclusion
After all, the primary purpose of the visit isn't to do the task, but to the build the working relationships. It's a common mistake with these things to cram so many tasks into the visit that there's little time for the vital human communication. So keep the work pace relaxed, and don't be afraid to schedule in something informal where the hosts can show the visitors around and get some informal contacts going. Dinners and sightseeing can often be the most useful activity that the visitors do with the hosts.
It is important to get seeding visits in as soon as you can. Without decent personal relationships it is likely that you will run into problems due to miscommunication and lack of trust. These problems will take a lot of energy to repair and can easily cause lasting damage to the project. So seed early to head these problems off.