Recently InfoWorld's Bill Snyder wrote about the efforts by companies to increase the number of H-1B visas. His article parroted what the headhunters say: There's no shortage of qualified developers -- you just need to pay market rates.
One problem with Snyder's article, and many others like it, is that it lumps system administrators (and everyone else) in with software developers. There is no shortage of system administrators -- certainly, there's a dearth of great ones, but no deficit as a whole. But there most definitely is a shortage of software developers.
As president of a professional services firm, I can tell you from personal experience that software developer salaries are going up at a rate much faster than inflation or the cost of living. Sure, if you "pay market rates," you can find software developers, but that's true of anything. In a market economy, nearly anything that exists can be bought at the right price.
For love or money
The word "shortage" generally refers to an artificial situation where you cannot simply pay a higher price and be assured of obtaining a desirable object (such as a sound software developer). Nevertheless, some people can say with a straight face that there is no shortage of software developers, merely an abundance of employers unwilling to pay the right price. They say it the way a politician explains his support of family values while his mistress claps from the limo.
There are few genuine economic shortages. For instance, when an infestation destroyed much of the Kona crop in Hawaii, my favorite K-cup coffee was no longer produced. I can still buy Kona coffee, albeit in a different form and at a much higher price.
The same is true of software developers. In many areas of the country, developer salaries have risen dramatically, while salaries for other occupations (including skilled ones) have fallen. People may wish to confuse us by pointing out that in the most rural section of Nebraska, salaries have dipped, but that distorts the truth. Many developers idealize the notion of creating software in their living room and "telecommuting" to work while the baby crawls around on the floor and they sip cappuccino. While some software is created this way (indeed, I've done so), most software is created by teams in close collaboration.
Besides, most American software developers don't want to live in areas beyond the suburbs of denser population centers. Why? Because they can't get a decent Internet connection, and they're stuck with 7-11 cappuccino, which tastes like hot ash in a cup.
I can tell you that no matter how many skilled software developers I hire, there's always more than enough work to keep them busy, and it's been that way every year of the last five that my company has been in business. Our company is located in Durham, N.C., and Chicago, Ill. -- two areas that have suffered severe shortages of experienced software developers, yet we do our best to hire and train people at multiple levels.
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.
Why my company sponsors H-1Bs anyway
Here's the truth: Americans are not especially attracted to the field of computer science. While enrollment in computer science programs is up since bottoming out in 2007 or so, it is much lower than its peak before the dot-com bust. On the flip side, if you calculate the year-over-year growth in the number of jobs, demand is higher than it was during the dot-com boom.
Few of our more senior employees are on H-1B visas, green cards, or other visa programs. Many of our younger employees are. The reason is simple: When we recruit on college campuses or post jobs on Craigslist, on our website, or at meetups, most of the people who apply need sponsorship. If we want to hire enough people to build our business, we have to sponsor visas.
It's easy to say, "We'll hire older programmers and retrain them" -- except the numbers aren't there. Yes, a few highly motivated older developers have applied and were willing to take the job at their skill level; in some cases, they've been rapidly promoted after landing the job. Then what? Next, we hire less experienced developers and train them. The H-1B fees and hassle are nothing compared to the cost of our staff development program, which is responsible for helping each employee reach the next level in their career at our company through training, mentoring, and evaluations.
"The fastest way if you are in the 99 percent and want to join the 1 percent ... is to learn computer programming," said Hadi Partovi. This is hyperbole; most of us won't make over $506,000 per year without a lot of luck along the way. But it is relatively easy to end up in the upper 10 percent. I couldn't be happier about that for myself and for many of my friends.
Sadly, it isn't very logical or very good for the U.S. economy that software developers are closing the gap with the 1 percent. We can discuss whether the continued consolidation of wealth in the United States is a threat to our overall competitiveness, but I think it is less arguable that developers leaving the rest of the economy behind is good for anyone but developers. In fact, this has already entered the calculus of my business. We used to target small businesses as customers. Now our "target" deal size prices us above the reach of many small companies. Many factors went into the decision to raise that point, including -- to a large extent -- the cost of labor.
Not every company needs high-end scalability consulting, big data, or even its own custom mobile application. However, as the cost of developer labor goes up, the fruits of that will be less available to small businesses, which are the engine of the U.S. economy. Sure, the cloud will consolidate costs and automated "generators" will make at least some of this available, but in the end, the gap can't increase forever without pushing software technology out of reach.
The solution
I don't have all of the answers, and the ones I offer don't come easy. Part of the answer is simple: marketing. Remember the lean years after the dot-com boom? Everyone grew concerned that offshoring would destroy all the tech jobs. This caused an immediate drop in the interest in the field, and we have yet to recover.
The likes of Code.org is critical. We need more voices saying, "Yes, coding is accessible to the likes of you, and yes, it leads to almost guaranteed employment and a fat paycheck." We have to get coding into K-12. Next, most college-level computer science programs aren't getting the job done. They need reform, but other folks need to put together paths for students using a growing body of online materials.
We need to get the word out about MOOCS like Coursera. We need more vocational programs like those run by StarterLeague near my office in Chicago.
Companies have to bite the bullet and establish comprehensive staff development programs that help their staff's skills go from point A to point B. This needs to be the new normal -- not sending meaningless drivel to headhunters who spam us mercilessly on LinkedIn because someone knows jQuery and Ruby instead of jQuery and Node.js, and their employer decided to staff a Node.js "expert." Also, companies must finally learn how to run software projects rather than stamping agile terminology on the same idiotic SDLC waterfall, which should be buried, dug up, burned, then shot into space.
We also need to change the way companies hire. You don't need 10 Java developers with four years of experience with Activiti and five years of Spring. You need one such person -- and nine Java developers who understand state machines and dependency injection. It would be great if they knew that specific API, but let's not overestimate the learning curve.
Of course, all this takes time. Until then, there's only one course of action: increase the number of H-1Bs allowed, which will keep salaries from skyrocketing and maintain the United States' competitive edge. This should be combined with comprehensive immigration reform that encourages people here on H-1Bs to move to citizenship rather than leaving after six or seven years.
There aren't enough software developers. We need more and better ones, and not all of them need to join the 1 percent.
This article, "Get real, Bill -- we do need more H-1Bs for tech workers," was originally published at InfoWorld.com. Keep up on the latest developments in application development and read more of Andrew Oliver's Strategic Developer blog at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.