Is there really a difference if your team is in a nearby city or in another continent? Not really. If team members cannot be collocated in the same room or at least in the same building, it doesn’t make a difference where they are. At the end, they will communicate and collaborate using cloud computing, web tools and voice over IP. In most off-shore countries internet and communication infrastructure has been upgraded; they are not using dial-up anymore, in case you are wondering.
Of course there are other factors, like cultural differences, language barriers and time-zones. Cultural differences can make it difficult to build a team with people you haven’t met or don’t see often. In some cultures, you have to develop a personal relationship first before you can attempt to work as a team.
Language is another concern, as many people overseas will not speak your language, and those that do sometimes you wish they didn’t. Nevertheless, at least in Canada, this is becoming a frequent scenario with on-shore resources, as new immigrants fill many roles in project teams, particularly in IT. At the end, you need at least one team member off-shore that is fluent in the language of choice. If the rest of the team can at least read documents, you are OK, as long as there is at least one who can also speak the language.
Time-zones are a constraint particularly for project approaches like agile, which require constant communication and collaboration. When there are only one or two hours of overlap between the teams’ working hours, even a simple problem or question could hold a team back for a day. To address this problem, projects have remained in the traditional waterfall approach, as this requires less interaction and allows each side of the pond to work on their own thing. Of course this creates all sorts of problems of their own. Having resources in the same or near time-zones removes this constraint and enables the use of even agile approaches, and this usually means shorter/cheaper flights and no jetlag.
Last year I had the experience of running an agile/scrum project myself with three resources in Ontario, Canada; and four development resources in Peru. Through the use of technology we managed to follow most agile/scrum processes and practices, with some adjustments. On the cultural and human side, it took a few trips to develop a relationship with the key players, which was crucial to the success of the project. At the end, the project was a big success: an initial plan of 18 two-week sprints was delivered in 20 sprints. This variance is good even in a waterfall and collocated environment. Agile on scrum works! Off-shore is getting closer than we think.