Yeah I still don't know if people have realized that offshoring can easily cost more and take longer than having locals do the work.
The projects that I've been on that had offshore resourcing struck me as slower and more difficult to work on. There are only so many times that I can ask someone to repeat themselves on a conference call because his/her accent is too thick for me to understand.
I've seen some offshoring went well and some which went not so well.
Common mistakes are:
Some western companies want to do it ridiculously cheap. To hire really good programmers in Eastern Europe you need to offer bigger than market salaries (which are still lower than western salaries).
The other problem is, even if they hire good people they outsource the most boring jobs, because western programmers keep the interesting stuff for themselvs. The result in this case: Phd-s doing the user interface programming in Eastern Europe. The server is developed in the U.S.
Political stuff: western guys don't want their eastern colleagues succeed. I can understand why: they are afraid that their jobs will be taken.
And sometimes communication is hard to do right. In fact depends on the project. I think it is better to outsource highly self-contained tasks which do not need an exteremely high amount of interactive communication.
I was with you right up until you said "they are afraid that their jobs will be taken." I realize the plural of anecdote is not data, but from my experience, far and away the most common frustrations Western developers have with offshore outfits is the language gap, and quality of work.
I've never seen anyone afraid that another outfit would take their job-- after all, who would fix the code they got back from offshore? :)
In my experience (last 5 years in MegaCorporations) the problem is that the people who are actually hands-on managing the offshoring projects are different from those who make the decisions. The guys who decide to offshore are usually at least 2-3 layers of management above.
The urge to offshore software development at that level is strong, and the management sees it as a megatrend which "we'll have to follow because everyone else is doing it".
The feedback loop is broken, the decision maker who offshores a certain project is no longer there when a couple of years later it's clear that the whole thing was a disaster. He's busy offshoring some other project.
If you're a big shot exec, you might go to silicon valley and see these highly talented and ambitious Indians and say "I gotta get me some of those".
But the sort of Indian you find in Silicon Valley (or more generally, the sort of person from country X you find working in another country) is generally not representative of the average worker where they come from. As far as Indians go, there are the cream of the crop who can work anywhere, and you never see them on the open job market. There are the regular Joes like you and me who generally work for Indian companies in India, you only see them in the West when they're on holiday. Then there are "the rest" and those are the ones who do outsourcing gigs.
Those guys at the top also tend to be the ones who think Agile methodologies will solve their problems without checking to see if their existing culture is conducive to that work approach.
The projects that I've been on that had offshore resourcing struck me as slower and more difficult to work on. There are only so many times that I can ask someone to repeat themselves on a conference call because his/her accent is too thick for me to understand.