I have to believe that one of the scariest trends for anyone who programs is the migration of jobs to offshore development shops. Frankly, I don’t put stock in any numbers that I read in forecasts from Forrester or any other analyst, but the bottom line is that IT jobs moving overseas is the real deal. Norm Matloff and other people complain bitterly about the abuse of H1B visas by the high tech industry — H1Bs are nothing compared to entire projects moving offshore.
I really think that an increase in computer skills and other knowledge work overseas is great for economic development in the countries where it catches on. As more skilled jobs move to other countries, the wages in those countries will go up, moving those countries more toward the developing world. For the American programmer, though, competing with an equally well trained programmer overseas who gets paid a fraction what you do is a grim proposition.
Ultimately, I think that everyone has to consider how they add value to the organization that pays them. The rock star programmers don’t have anything to worry about, nor do the people who are speccing out the projects and defining requirements and architecture. For the regular programmer, I think the answer is to compete on service. You have to show your employer why having your team in the building justifies the increased cost over that team of people 8 or 10 time zones away. If you’re just as difficult to communicate with as a guy who’s sitting in front of his computer in Bangalore, India, then I’d suggest that you either become good enough at your job to deserve prima donna status or you get ready to lose your job to offshore development.