How Agile Concepts Make Offshore Harder
At first glance, it may seem as though agile methods, with their reliance on face-to-face communication and emphasis on collaboration, would be nearly impossible to implement with an onshore/offshore development team. Indeed, at the extreme end of the spectrum, where the ideal state is described as customers sitting next to developers, international distribution would be practically impossible. In practice, however, very few teams attempt to achieve that "pure" form of customer/developer collaboration. Instead, many work on a daily basis with some type of proxy customersoften referred to as business analysts or software analysts who interface with the customer when questions arise that they can't answer.
But just because very few people take agile concepts to the extreme, that doesn't mean that distributing your team doesn't interfere with the critical collaborative nature of agile teams. It absolutely does. For example, it's probably unlikely that you'll be able to find a business customer willing to join the offshore team to serve as onsite customer. Even if you were able to arrange this, the person would be extracted from his or her job to go and play the role of customer for a while and would to a certain extent lose touch with the business. After some time, your customer wouldn't be able to identify changing requirements as quickly as a customer who remained on-site doing his or her job in addition to participating on the development project.