Alex Deva has recently written a very persuasive article on the frustrations of Agile development as seen from the far end of an outsourcing agreement. He runs a company in Romania - Indigenous Development - and has past experience of many Agile projects.
I couldn’t agree with his observations more. The problems he observes are problems that arise in on-shored and near-shored development models as well. They are inherent weaknesses of Agile. I think he stated them very clearly though.
Unlike Alex, I think what is required is not a return to the classic waterfall model. After all, what Agile sought to overturn really was just as bad. Instead, I think that what we need is a more formal version of Agile with a period of up-front intense requirements analysis and high-level architecture. In other words we need to merge the benefits of both methodologies, throwing out any practices that will upset the balance of power within the project team.