Network Computing magazine has an excellent cover feature, “NWC Inc. Ventures Offshore,” on offshore application development, which includes stats from a reader survey (client server apps are the most common type of project to go offshore). The pièce de résistance, however, is a report by author Don MacVittie, which details the magazine's efforts in working with Patni Systems to create an application.
The project, as described in “Imported Java,” was a customer service application for the production environment of a mock company. The order entry system is based on Oracle using JavaServer Pages and the shipping/tracking system is based on Microsoft SQL Server using ASP.Net. The magazine asked Patni to create a program that used both systems to show all orders, their shipping status and how they were shipped for a given customer.
Network Computing put together a three-page requirements document, which you can read here. The magazine says it was kept “purposely short of information,” to see how the service provider would deal with it.
In return, Patni responded with a 20-page “Response for Comparative Review of Outsourcing Services.” The cost: $32,768.
Next, the client sent database schemas to the provider (though those aren't provided for public consumption). The magazine makes a point of saying, “As you know, for a vendor to develop an application with a database interface, the customer must provide the schemas, so we mention it here.”
When Patni asked about coding standards, the editors told the provider to use its own — again, in order to see what the results looked like.
Patni provided a final document, the “Functional Specifications,” a 27-page layout of the entire system to be built.
From there, the application was built. You can try it out by going to this page, and finding the “Try it Yourself” box, which has a link, along with user name and password.
The timeline, which is available as a sidebar here, details the steps the project went through from the week of 10/4, when negotiations and information sharing took place, to the week of 11/22, when the final product was accepted.
Mr. MacVittie's conclusions: “Patni has a solid practice of documentation that ends with a customer-satisfaction survey. When asked to fill it out so the company could close the project, we reviewed our notes, thought about all that had happened in the course of the project and came to the conclusion that, overall, the company exceeded our expectations.”
But he added, “We were a little disappointed in the pricing, for we were led on by the pervasive view that offshore development is 'cheap.' Turns out cheap is relative–for a small shop, outsourcing could well be more expensive than developing in-house. If your organization tends to bog down even small projects, you might spend more to pay people to attend planning meetings than you would for the entire outsourced project. The process isn't free on your end, so factor those costs into any price comparison between outsourcing and in-house development.”
Well worth reading, if you're involved in application development outsourcing.