Applying for H-1Bs is hard and expensive
The other side of the H-1B argument is that it's the easy way out. It isn't.
When we recruit at engineering schools or from the general population, most of the "freshers" who apply are on an OPT visa. In other words, we have to sponsor their H-1B. This process is expensive and difficult. To be clear, this is my high-level interpretation of the process; I have HR people and attorneys to do all this. I find it to be a daunting legal minefield and stay as uninvolved as possible.
First off, you have to pay about $4,000 when you include attorney's fees. Second, you have to choose a job description from a government database that was probably written more than a decade ago by IBM. This database is also goofy -- not goofy like really funny, but goofy like a developer in Los Angeles makes less than someone with the same job title in Durham, N.C. For context, keep in mind that my $200,000 house in a nice Durham neighborhood would cost well over $1 million out there. Yet you must pay no less than that "prevailing" wage even if it isn't particularly connected to reality.
OK, you've chosen the closest job title. Next you have to advertise the position in ... the newspaper. Because, you know, all technology workers look in the newspaper for jobs. This is to give U.S. citizens a chance to apply ... to an ad ... in the newspaper. Meanwhile, you also post the job on the Internet and hope people apply through that channel instead.
If you don't apply for an H-1B early enough in the year, you have to enter a lottery. This is easier because your international student probably has a master's degree rather than a bachelor's, and they have a better chance -- although you still aren't guaranteed success. Plus, of course, you enter this process without knowing one way or another whether the person's job performance warrants the expenditure. Did I mention that an H-1B costs $4,000, not including the price for internal labor?
Outsource vs. offshore
Further complicating the issue is the confusion over outsourcing versus offshoring. Some articles on the H-1B debate refer to companies like Accenture as an "outsourcer" and attempt to imply that outsourcing and offshoring are the same.
My company, which is based entirely in the United States and employs a fully domestic workforce (which may change for our 24/7 support business), is arguably an outsourcer. We supply higher-level expertise to companies that want to scale to 8 million concurrent users or build their own cloud or architect their first system involving a NoSQL database like MongoDB or use MapReduce for the first time with Hadoop. They lack the internal expertise and may not have the ability to hire and manage the skills in-house, so they rely on us to carry out some part of the process. In some cases, we also develop complete applications. In both examples, this is outsourcing.
It isn't, however, offshoring. You do not need a single H-1B to outsource to an offshore company.
Maybe this is my mindset as an economic liberal, but I regard most schemes to "protect American jobs" as mere protectionism that's unlikely to work -- at least not in our favor. Such schemes are more expedient than the hard work of growing American competitiveness. While I'm as patriotic as the next guy, when we expand to other countries, it won't be to pillage their jobs. We'll establish businesses in those countries, hire locally where possible, and make a positive contribution there as well as here.
One problem with U.S. immigration policy is that it doesn't generally encourage these highly skilled workers to immigrate permanently. Indeed, there are obstacles to doing this. What happens when H-1B workers can't live here beyond the six or so years they're allowed to? They go home and compete in the global marketplace. That's permanent. The H-1B program is a temporary measure.