There still seems to be a lot of misinformation about the outsourcing of technical jobs. Strictly speaking, yes, some jobs are either moved or created in India, China, or a number of other places with people and relevant skills. At this point a distinction should be made between “moved” and “created” — both India and China are huge and rapid growing markets, and a lot of international companies want to expand and set up shop in those locations. Such activities create _new_ jobs, but I feel that some people lump it all together with the dreaded “moved” (true outsource) jobs when they see sensationalist headlines in newspapers.
So what kind of technical jobs move offshore? The general trend is “cost saving”, so it’s typically low-value/low-skill positions; call centres are popular, but also other levels of “support” positions. While support also falls into an incredibly broad definition of IT, lets assume that a pursuit of a degree leaves us with a higher level of skills. To be fair, when the management doesn’t have the understanding or the budget for a high quality development team, the entire department could be let go. If such was a software company, that company would have already been dead.
I don’t feel that intellectual outsourcing is about exploiting developing countries for cheap labour (as oppose to this being the case for physical labour; stereotypically for shoe factories). It’s cheap pay for either low-skills at market rate, or cheap pay for poor quality “high-skills”. There are high quality high-skill software developers in all of those countries — they migrate to where the high paying jobs are (or start their own companies in their home countries). It doesn’t seem like anyone is selling themselves short to get the jobs. It’s just that in today’s global economy, a failing company/department/project could make that final leap for the cheap options rather than folding right away. As I see it, those jobs would have been lost regardless of the outsource option being available or not.
Things might change in the future, but for now there are a number of software jobs that are guaranteed to stay local (for some definition of “local”) and high-paying:
Startup jobs — it’s you and 4 other guys building the next Facebook (at $50 billion valuation, we are partying like it’s 1999 again). Since just over a year ago, my favourite startup job posting site Startuply has more than doubled the number of companies that are _currently_ looking to fill positions. There is simply no room to cheap out on innovation. The same is actually true for any technology company that is trying to develop new products and lead its industry. Besides, it’s now easier than ever to start your own software company.
Just about any technology other than Java — offshore shops that aim to attract outsourcing business specialize in the lowest common denominator of the software industry, which happens to be Java. Ability to pick up on other languages opens up many new opportunities that might be immune to any outsourcing for years to come. This is especially true of emerging technologies, more so in the mobile space. Acquiring the skills, knowledge, and hardware to develop for the newest release of, for example, an iPad simply has very different economics than doing generic projects in the same technology, year after year.
High reliability jobs — there are just a few jobs that require one to carry a pager; they include doctors and software development engineers that make 6 figures per year. What if one of Amazon’s servers crashes and some pages become inaccessible at 4am? There’s absolutely no way that the responsibility to fix things _right now_ will fall on anyone who’s not getting paid high enough to get out of bed and start coding in the middle of the night. When the company’s online store sells up to 158 items per second (yeah, second), _any_ downtime is incredibly more expensive than $100,000+ salaries.
Along the same high-reliability/high-skill line of thought, Google has recently given out a 10%+ raise to the entire company (and some Engineers still leave to work for Facebook instead).
Having worked at both startups and major software corporations, it has always been the case that _everybody_ is always looking to hire. Many will even pay employee referral bonuses for simply pointing towards a candidate that accepts a job. An important note, of course, is that there’s a certain skill baseline that needs to be crossed to get hired. This is a matter of having the education, experience, and drive for high quality results. Above this quality requirement, there are more job openings than people able to fill them.
So sure, there’s some outsourcing happening in the industry, but the jobs that we really want — they have a pretty good outlook. In fact, the salaries and the hiring outlooks are so good, that CareerCast has named Software Engineer to be the best career for 2011 (up from 2nd place last year).
P.S. “Software Engineer” is typically used in an American definition, where the term “Engineer” is unregulated. Meaning that any of Computer Science / Software Engineering / Computer Engineering degrees could lead to the same job. Feel free to pick a major that suits you best.