Catherine Mann has a recent article
defending the outsourcing of IT jobs. Catherine is from the Institute for International Economics
a "private, nonprofit, nonpartisan research institution devoted to the study of international economic policy" which happens to be funded by some of the US's largest outsourcers of jobs and the largest international companies in the world.
In her article she espouses the greatness of outsourcing the IT sector and how it is coming back to us in increased IT funding.
Technological change in software programming modularizes and decomposes the functions into design, coding, maintenance, and user interface. Design and interface must be done together with the customer, but coding and maintenance do not require close proximity with customers and can be done by less costly programmers abroad. The higher-wage jobs, involving design and interface, must still be performed in the U.S.
The whole problem with the economic debate on outsourcing is that it continues to stress that individuals need to be retrained, or that we are only losing the "lower menial jobs". However these "lower menial jobs" for programming are actually entry level jobs. Entry level jobs are required for a programmer in order for them to gain the proper experience to move forward and upwards in their career as a software engineer. Without these entry level jobs a programmer cannot have the proper experience to progress into becoming a higher level job such as "software Architect" because they do not gain the required knowledge that such a position requires.
From personal experience I can tell you that some of the worst programmers I have met are those right out of college. Sure, some of these college grads have been doing it since they were 8 or younger, but the ones who just go for a CS (Computer Science) major without actually being a geek from birth are horrible programmers.
What we are really doing by outsourcing the entry-level positions is setting ourselves up to have to outsource higher level positions in the future because of the lack of experienced and technically knowledgeable software designers and architects in the future. These skills cannot be gained through a college course and only come with experience in the workforce. Just like an athlete that gains the neccessary skills to move into the Majors from the minors so to do programmers.
The industry as a whole is going to be fully moved overseas if this continues and the only individuals in the US will be representatives of foreign companies that go to meet with their US clients. You can't retrain an entry level software engineer to be a software architect.
Slashdot has some great comments on this article as well as some thought provoking discussion.