In an article on CNN/Money last week, a recent Gartner report was quoted as saying, “By 2004, more than 80 percent of U.S. executive boardrooms will have discussed offshore sourcing, and more than 40 percent of U.S. enterprises will have completed some type of pilot or will be sourcing IT (information technology) services”.

In addition,
Forrester analyst John McCarthy recently predicted, “Over the next 15 years, 3.3 million U.S. service industry jobs and $136 billion in wages will move offshore to countries like India, Russia, China and the Philippines”, and that “The IT industry will lead the initial overseas exodus.”

Wow. Those are big numbers. How can you be sure that your job isn’t one of those outsourced? Here are some ideas:

1. Constantly update your skills.

In another weblog entry, Uche Ogbuji asked, “Are XML, Web Services, CORBA and such for Joe Codeloader?”. Let me answer that - “No, unless they want to make sure they stay employable!”.

Letting your skills go rusty while technology changes around you gives upper management a reason to shop around. Faced with the prospect of sending you through training at their expense (which takes time, costs more and pushes out project end-dates), they may just make the choice to outsource to cheap off-shore labor that already has the skills they need.

2. Get to know the business.

One thing that you have over any outsourcing company is specific, domain-knowledge on your particular company. You can learn to speak the business users’ language. You know about the other systems you need to integrate with. You understand the history of why the old systems didn’t work. This knowledge can’t be replicated.

(By the way, this also means staying in one place long enough to gain that knowledge!)

3. Make your customers need you.

This comes through being competent as well as getting along. You need your users to like you so much, that they ask for you by name. You want your users to tell their management how valuable you are and how they need you on the team.

4. Learn technologies that integrate other technologies.

It’s much easier to outsource development of a specific project than to outsouce the work of getting it integrated with the other systems you already have. This is why you need to know CORBA, SOAP, Web Services, MQ Series and whatever other technologies and middleware your company uses.

I’m finding that almost all my new projects have at least some level of effort associated with integration to other existing systems. Do what you can to move into those parts of the projects.

5. Learn a lot of technologies. Learn *base* technologies.

I had a friend in Engineering school that got a job with Ford after college and became a carburetor test engineer. He knew carburetors better than anyone! This, of course, did him absolutely no good when Ford switched everything over to fuel injection systems.

He was able to stay with them and switched into ‘metal forming’. He said, “I don’t care how many composite materials there are, they will *always* have metal in cars.”

Looking at your skills from this perspective, are you the computer-equivalent of a “carburetor test engineer”?

You need to learn as many different technologies as you can to make sure you’re safe if one is discontinued. You also need to learn *base* technologies - those that are used all over the place (like http, xml, web services, etc.).

Of course, nothing can make you safe from every possible circumstance. After all, as The Clash are often quoted as saying, “The future is unwritten”!

In the end, you are your own best safety net. Take control of your skill set and write your own future.