In Agile software development people are not interchangeable cogs where anyone can be swapped in and out on a regular basis; people are your greatest asset.
It’s preferable to have a collocated team of highly motivated individuals who are working together on a daily basis to create something great. But sometimes business needs dictate that the team cannot be fully collocated and you need to work with offshore resources. While not ideal, keep in mind that you can make offshoring effective, but you need to work at it.
Regular communication is essential and using tools to “virtually co-locate” are wonderful (Skype, WebEx, GoToMeeting, etc.). Our tendency might be to rely on the fabulous technology available as a replacement for any kind of direct personal interaction. But keep in mind that these methods for virtual collocation are best when used to enhance and continue personal relationships and interactions that were initially built face-to-face.
Face-to-Face is Key
Even though you are off-shoring some or all of your development, you will need to consider what degree of actual face-to-face interaction will be possible:
- Get an understanding for a travel budget
- Make sure you get a handle on logistics like passports/visas on both sides
- Ensure people clear their calendars and are available for face-to-face work
- Set specific goals for face-to-face interactions
You will want to have several of your key people visiting your partner in their offshore location. They need to be there long enough to get to know everyone who will be on the offshore team, with a particular emphasis on building relationships with the key members of the organization.
Build a seed team at your partner organization that will be fully on the same page as your on-shore development team.
- Pick a couple of developers in the partner organization who are good communicators and also great developers.
- Bring them onsite and make them part of your team for a few sprints.
- Make them part of your team, treat them fully like any other team member and have them learn how you work while delivering user stories.
These developers will be the core of your seed team when you send them back to their home office. Then keep the rotation going on a regular basis, people from your office visiting the off-shore facility and developers from offshore working in your office.
Effective offshoring is enhanced by relationships built in person and then reinforced daily over the phone, video chat, and in chat rooms/e-mail. All this personal interaction has an expense associated with it, but you should see the benefits in increased productivity and quality.