In a recent column (Boon or Bust), I disputed the notion that open source is responsible for US programmers being replaced with cheap overseas labour.
In my discussion, I mentioned that open source can be useful for programmers to expand their skills sets so as to increase personal employability in a future where there may be fewer programming jobs in the United States.
Obviously, I hit a nerve.
Several people accused me of being cavalier about the problem, not caring about the fact that the increasing trend of using cheap foreign programming labour will drastically reduce domestic IT salaries and job opportunities, forcing many programmers to abandon their careers. In fact, I care deeply about this matter. I've been through a layoff, and I don't wish the experience on anyone. I just don't have a magic solution.
The sad fact is that businesses that overindulge in this practice may damage their organisations in the long run as badly as they are damaging the livelihood of programmers. If most of the entry-level and mid-level jobs are sent overseas and wages drop toward fast-food levels, where will the more advanced programmers and analysts come from? Few capable people will want to enter a field where jobs are few and wages are low.
Maybe the best alternative is a creative use of open source. Some of the most expensive ventures are the large, special projects that some IT departments undertake. These projects used to involve large consulting companies with rooms full of programmers banging out code for months. Now they frequently involve overseas programmers doing the same task on a different continent for a pittance.
The goal of a project like this is usually the creation a unique solution custom fit for the organisation. Unfortunately, most of these efforts (and I've worked on a few over the years) involve massive efforts to re-create closed-source code that other organisations have already written. That's a significant cost for reinventing the wheel.
Why not consider a different approach? Instead of aspiring to a huge custom solution and then cutting costs by using cheap labour, try extending an open-source solution. This reduces costs by eliminating the needless redevelopment of existing code. Maintenance costs can be lowered by returning much if not all of the new code to the open-source project, involving the open-source community in the creation of bug fixes and improvements. I've spoken with people at organisations that have used this approach to their benefit without having to pay their technical people low wages.
This scenario reduces costs, while keeping jobs available and wages acceptable for programmers. It beats driving down technical wages to the point where programming ceases to be a viable profession in the United States. Jobs may be lost, but until more American businesses decide that some things are more beneficial than bleeding every dime from the bottom line, the losses appear to be inevitable.