All of the Agile methods expect significant participation of the ultimate customer of the project with the development team throughout the project. This is often accomplished by having a representative of the customer working closely with the team on a regular basis. (Different Agile methods carry this model to various extremes – with eXtreme Programming being the most extreme.)
How active are your customers in your projects now? And more importantly, how readily would they increase their participation if you asked them to? Most customers have only limited resources to devote to the project, and any significant increase in interaction could represent an obstacle to them. Would your customer be able to commit the time and effort that the Agile practices expect of them?
Another consideration is the details of your contract with your customer. If you are developing software under contract, then the rules for interaction may be carved in stone and essentially unchangeable. Even if changing the rules of engagement were possible, would your customer be willing to do so? Often, companies use contracts to protect themselves from the organization they are contracting with. If your customer takes this view, then they may not be interested in collaborating more closely with your development team.
Examine the practices that you expect to adopt, and for each, determine the extent to which it can be implemented given the realities of your customers, and the benefits you anticipate can be reasonably expected to accrue.
Every project is unique and represents unique challenges and opportunities. Nonetheless, most organizations tend to take on projects that have a relatively predictable set of attributes. Some companies do mainly financial and administrative systems. Others do real-time embedded systems. What kinds of projects to your development teams generally work on? The types of projects that your teams take on have a certain amount of uncertainty to them. They represent a certain risk profile. And they include a certain amount to technological innovation.
Although the Agile methods were mainly developed to meet the needs of small projects that expect significant turbulence and change, they can also be used in many other kinds of environments. Most of the Agile methods expect that the development team can work face-to-face on a daily basis. If this is not the case in you organization, then some of the Agile practices may need to be modified to work with a distributed team.