Agile Vs. Outsourcing
When an author like Scott Ambler speaks, I generally listen. He is a lucid writer on the very relevant topic of agile software development. Thus, it was with great interest that I found his article (free registration) comparing outsourcing and agile development in the April issue of Software Development magazine.
Clearly,Ambler speaks against the process of outsourcing. He carefully examines the motivations and interests of firms that provide outsourcing services (seller). The sellers self interest, is found to not exactly agree with the interest of the buyer. This disconnection is especially prominent in the key areas of design and documentation
During the design process, a seller is naturally inclined to push for a big-design-up-front (BDUF). This helps to allocate resources, and to plan to future needs. In reality, almost no projects are ever completed to their BDUF specifications. Requirements quickly change as needs are uncovered, and as real software is produced.
This process can become very lucrative for the seller, as billable hours are spent not only rewriting code, but keeping extensive documentation up to date. In pointing out the reality of this situation, Ambler comments that few people will ever find use in this documentation. What the documents represent will quickly change. It is much easier to use the system, than to pour through hundreds of pages of documentation for the answer.
These are very good points. In fact, these are some of the core arguments for the agile process.
However, the key error that Ambler makes in his article is to cast the two processes as mutually incompatible. In fact, it is a very un-agile stance to take.
A better solution would be to argue for the use of agile practices in outsourcing, Agile Outsourcing. In fact, this system has already been put into practice by Eversun Software. Communication is important in every project. Documentation should not take it's place under any circumstance. Additionally, project managers and key stake holders must be intimately involved in the entire development process, regardless of geographic location