The greatest problem offshoring faces from a purely software development standpoint is one of culture. Ask yourself, why is the United States, by far, the largest producer of commercial software? There has to be something intangible in the U.S. that causes this. That intangible is that Americans interact in a manner that is contusive for software development.
For example, suppose an American programmer forgets, let us say, the name a Unix shell command. He knows what it does and has used it in the past but today he cannot remember the name. The American programmer immediately asks the person in the next cubicle, Whats the name of the command that does He gets the answer in 2 minutes and feels no shame for asking such an easy question. In many countries a programmer in the same situation will spend a week going through manuals to find the answer. Asking the person next door to get the answer would be humiliating.
If you call technical support in the U.S. and the person you get on the line does not have the answer or cannot get it in a short period time, that person will usually escalate your call to someone else who is more likely to know the answer. Offshore technical support is completely different. I have spent hours on the phone with overseas technical support people who refused to escalate problems even after it was clear they had no hope of solving the problem.
This cultural element is not unique to America. There are other countries that have it to varying degrees. However, everything I have seen so far suggests that the cultural intangible for software development found in the U.S. is not to be found in the current offshoring destinations.
A common problem in offshoring is planning for contingencies. The pattern in the industry is for companies to bring in their offshore outsourcing company; have their employer train their replacement; and fire their current employees.
What happens when the offshoring fails and you need to end it? There is no incentive for the offshoring experts you hired to plan for such a contingency if your offshoring turns into a disaster, they are going to be gone before the salvage operation begins. All the internal expertise your company has built up has gone elsewhere or been transferred to your outsourcing vendors (available to be sold to your competitors). Your company will have to rebuild from scratch, an expensive process.
Offshoring runs into basic economics. As more work moves offshore, the demand for overseas programmers will grow and the costs will rise, something we are already seeing.
I have history to back me up on this view of offshoring.
One of the signs that I am getting old is seeing the computer industry recycle old ideas (usually with new names) and acting as though they were new. Machine independent byte-code and SOA are example of such rehashed concepts. Some history helps put offshore outsourcing into perspective.
Go back to 1989. That year two large American companies announced they were going to outsource their computing operations. They would no longer be in the computer business. Instead, companies would expertise in computers would provide the services.
Outsourcing became the biggest thing in the industry. CIO of the Year awards followed. Management consulting companies set up outsourcing practices; Industry analysis groups started running seminars on outsourcing; and hucksters started adding Outsourcing Consultant below their names on their business cards.
Over the years, outsourcing fizzled out although not entirely. Outsourcing continues in selected areas, such as technical support and network management. However, the large-scale outsourcing that was hyped as way of the future nearly disappeared.
Now outsourcing is back in with offshoring. The management consulting companies have set up offshoring practices; the offshoring seminars are back; and so are the offshoring experts. Instead of outsourcing to IBM, outsource to IBM India and all will be different. Déja vu all over again.
We are already starting to see the cracks in the offshoring fad. Online forums contain discussions of how promised savings from offshoring are failing to materialize. There are accounts of companies charging costs of runaway offshored projects to domestic projects to satisfy management calls for offshoring success. More people are starting to openly question the offshoring dogma.
This not to say offshoring is bad in itself but rather that it only makes sense in certain circumstances. Objective examination may find that certain projects are better done overseas. For many technical challenges, the leading expertise is not in the U.S. When faced with this kind of problem it makes perfect sense to go offshore. However, offshoring because of Wall Street expectations or because the SMFs show you can get three programmers overseas for the price of one in the U.S. is simply moronic behavior.
Just as with outsourcing, I do not expect offshoring to go away entirely. Companies will go overseas to gain access to specialized expertise. Overseas vendors will compete with domestic vendors. However, the U.S. software development industry will not pick up and move next door to the sneaker factories.