A lot of people are talking about outsourcing of IT to India.
Brad DeLong writes from the point of view of a political economist:
I think that the correct policy response is the one outlined by Robert Reich in his Work of Nations of a decade and a half ago: First, get our people out of industry segments where we are about to lose comparative advantage and where wages are about to take a big dive--this is the reason we Democrats like various forms of Trade Adjustment Assistance, for those who work in such industries are about to get shafted and have done nothing to deserve it [...]
How do we know if an industry segment is about to lose comparative advantage? Do we really want to give assistance to programmers who have been earning large salaries compared to their white-collar peers?
Not too long ago, Business Week featured an article on the same subject.
It means the career you studied for — and spent oodles of tuition money on — in college probably won't sustain you for your working life. Someone in India or China will be able to do it far more cheaply.
Most inflammatory of all, Sue Spielman (who wrote a pretty good book about the Struts framework) suggests that
When you are asked to train the foreign worker to do your job or to support your product line because in 6-8 months they will be doing your job (or the job of a co-worker), simply refuse. And if you must, quit the job.
In the comments threads it's clear that people are getting upset. It seems that economists (like Brad DeLong) and non-economists see the world in utterly different terms. The economist points out Ricardo's law of comparative advantage; the non-economist says, in effect, I don't care, it's hurting American IT workers, so it's bad. People get emotional about foreigners doing the work that highly paid Americans used to do for a fraction of the cost. Unemployment in the U.S. is low, but I suspect that it is worse to be unemployed in the U.S. for any length of time than it is in any European country.
I also suspect that Sue Spielman is right in many cases. Outsourcing to India might look like a quick fix for many an ailing corporation, but the problems she talks about do occur. They're not even unique to India — any kind of outsourcing is vulnerable to quality problems and hidden costs.
In part, it comes down to one's time frame. In the long run, countries benefit from specialization and, the way the world is going, there will be plenty of areas to specialize in, even within IT. In the short term, though, people know programmers who have had their jobs transferred abroad. Anecdotal evidence makes for a better argument than theory. As Brad DeLong implies, if the job market recovers in the U.S. nobody will care nearly as much about outsourcing.
UPDATE: the web log was mistakenly configured to not allow anyone to post comments. My apologies to anyone who tried to post but couldn't!
I hear a lot of people agreeing with Sue Spielman's comment: "The ‘fully qualified’ engineering team was not even close to qualified. They not only completely screwed up the code base, but they cost us more work in the end to fix their mess." The general consensus seems to be that offshore developers are not, and can NEVER be, as competent as Americans. Does the phrase "wishful thinking" mean anything?
I remember when "Made in Japan" was a synonym for "cheap junk". America made the best cars and TVs in the world. Good ol' American ingenuity; that's the ticket. But then Japanese companies started concentrating on QUALITY rather than ingenuity, and names like Toyota and Sony became synonymous with "way better than that American-made crap".
The Indians, in particular, have been concentrating on software QUALITY. Take a look at where all of the CMM-4 and CMM-5 operations are. Their programmers don't learn by downloading an IDE and futzing around; they attend professional training courses. They are learning to be true professionals, not bright dilettantes earning a living being clever.
It's tempting to say, "Don't look back, you don't want to see what's gaining on us." But I think it's too late; they're already ahead of us, and we don't really stand a chance of catching up in the near future.
Cem Kaner had some interesting observations in his weblog at http://blackbox.cs.fit.edu/blog/kaner/archives/000056.html (see the comments attached to the entry), in which he notes that offshore development requires formal development processes, and the Indians are far more expert at those processes than Americans are. Nor will we be as expert at formal processes within the near future; it takes about a decade to get up to CMM-5. And even if we did, we couldn't compete on price.
Kaner notes that our advantage is our physical proximity, which is necessary for agile development processes. In his words, "American software engineers will be more competitive on American projects than distant workers if they are more flexible, more responsive, more able to get done what the customer needs done -- tracking the customer's changing needs rather than resisting them." This, then, looks like way forward for American developers: agile development.
Doug, thanks for your comment. I agree pretty strongly with all of it. Like a lot of people, I've worked with Indian H1-Bs in the US and have found them to be as able as anyone else. Anecdotal evidence aside, we'll see how well outsourcing to India on a large works over the next few years. I suspect it will in many cases.
Meanwhile, as you say, developers in the US can compete on service, on flexibility and on responsiveness. OnSiteCustomer is difficult to do with development outsourced half a world away.