Times change, and few programmes warrant eternal life.
Take, for example, the US Patent and Trademark Office. Established to encourage innovation, it now encourages patent holders to use attorneys instead of engineers to protect their marketplace position. Close the Patent Office and companies would have to win by getting to market first and innovating the most.
A programme that has even more clearly outlived its purpose is the H-1B visa programme. Created to help American companies deal with a shortage of skilled programmers, it lives on in a time of high IT unemployment. Let's replace it with something better suited to our present circumstances.
What should that look like? Beats me. Keeping foreign programmers out altogether, like banning foreign cars and clothing, is protectionism, which just makes America uncompetitive. CIOs and CTOs, under heavy pressure to cut costs, would simply move more programming work offshore, whether or not it's a good idea.
And it probably isn't, as quite a few readers pointed out in response to a recent column (see "The IT rust belt"). Successful offshore development requires a strong separation of systems analysis -- to create perfect, detailed specifications, immune to both misinterpretation and the changing needs of a dynamic business -- and coding to those specifications without adding creativity or business insight.
That's fine for cut-and-dried conversions, upgrades and minor maintenance work. For anything more interesting, this approach didn't work even when it did work. Which leaves IT management and American programmers with a shared problem: how to make onshore development cost-competitive with offshore development.
There's no single solution, but there are opportunities. Here are three:
Adopt methodologies that merge programming and analysis into a single discipline. This will save both time and labour.
Take real advantage of modern development tools, which should cut coding time by easily 10 times or more compared to IT's bronze age of hand-coding and batch compilation.
If you need inexpensive developers, look to small-town America. While you won't find wages as low as in Bangalore they'll be lower than in Manhattan or Silicon Valley.
Meanwhile, even the biggest language and cultural barriers -- between, say, Californian and Southern -- will be relatively minor in comparison.