I had lunch today with 4 developers. Despite the high geek quotient around the table in the Chinese restaurant of Seattle's International District, the conversation was particularly eclectic. However, a thread on economics and politics inevitably led to the debate on the economics of out-sourcing.
At one point, I said, "If costs in Bangalore are about 1/4 those in Seattle then all you need to do is improve productivity 4 fold to compete." One of the developers was stunned by this. He is a hard working, smart, diligent guy. How could he possible work 4 times harder? Good question.
I replied that if you have an initial quality metric of 3 bugs per Feature and you cut that to say 0.5 bugs per Feature by spending 15% of your effort on design reviews, code reviews and unit tests, then you will increase productivity 4 fold - easy! And this is just scraping the surface of what is possible. Eliminate all sorts of waste such as - queuing and waiting time, conflicts, use automation on repeating process and non-value-added activities such as reporting, improve analysis techniques to focus just enough and no more, improve flow in the value chain and reduce work-in-process. With all of these things it is possible to see up to 10 fold improvements with initially immature teams.