It finally hit, a bit of Trump populism designed to appeal to the working class, labor unions, and nativists alike. The Department of Homeland Security is reportedly going to clamp down on H-1B fraud. At the same time, policy revisions will make it harder for entry-level computer programmers to qualify for an H-1B visa, tightening the requirements to favor those with greater skills and education, according to a new U.S. Citizenship and Immigration Services (USCIS) memo.
The result of all this reform could be even higher wages that actually put advanced computer technology further out of reach of most businesses. And it’s getting worse due to entrenched bad practices in the developer community, no matter where the people come from. Ironically, if the development community understood its bad practices and actually changed them, we’d need fewer H-1B visa holders to fill jobs—too many developer jobs exist to paper over the numerous cracks in the system.
The H-1B economics aren’t so simple
Although there are many stories of U.S. workers displaced by cheaper H-1B visa holders—typically, those working for an outsourcing “body shop”—it isn’t necessarily cheaper to hire H-1B visa holders in high-demand fields. According to a Glassdoor survey, it may be even more expensive, depending on the field. That’s even true in light of evidence that large outsourcing firms have been gaming the system for years (according to the labor movement’s think tank and the New York Times). When you take their lower wage numbers and add the $4,000 to $7,000 in fees, no one saves any real money.
In my experience, if you had the lawyers and were willing to commit outright fraud, you could simply use the bizarre prevailing wage data with job descriptions that appear to have been written by IBM in the 1990s to justify hiring anyone for anything. Those not willing to commit fraud could still manipulate the Byzantine system to their advantage.
Ironically, improving the system may not help much: The large Indian “body shop” firms have been preparing for H-1B rules-tightening for years.
H-1Bs may help slow down surging tech salaries
The H-1B program has been a check on runaway high salaries in the tech industry. I like money as much as anyone else, but there is a penalty imposed on the overall economy now that so many midlevel software developers are making six figures. It drives the cost of automation and technology out of the hands of smaller firms.
Runaway tech labor costs also cause further consumerization of IT. While most small to midsize firms don’t need custom software, increasingly they don’t even have the option because they simply can’t afford the projects. Even if you want to pick something other than a SaaS vendor that doesn’t quite suit your business model, the cost of getting custom software may be too high.
Despite these burgeoning costs—and possibly in part because of them—real productivity gains in the U.S. economy due to tech spending have slowed. In truth, the stuff we are working on now isn’t going to have the same efficiency gain as converting from file cabinets to desktop PCs did. How could it?
Sure, machine learning and other tools could enable great changes, but the current generation of technology hasn’t spread evenly. There are companies with huge levels of automation, but Staples still sells file folders, paper, pens, index cards, and the like.
Some of this is technical illiteracy that limits efficiency, and as the U.S. disinvests in its education system, the digital divide widens. But some of this is because the technical labor necessary to implement automation fully costs too much, and the expense is only growing. With fewer technical workers coming in, it could get dramatically worse.
Two hiring systems for tech workers create an imbalance
Part of the problem is that there are two systems for technology workers.
There is the HR system for U.S.-based workers that looks at your experience and qualifications—not whether you can do the job but whether someone who doesn’t know what we do thinks you can. The paper-qualification bar is a little higher (generally, a four-year degree and some work experience).
Then there is the outsourcing system. U.S. firms largely trust the outsourcing firms’ basic hiring and evaluation procedures (despite those firms’ poor public reputations, ironically). The firms have to translate India’s accreditation of a three- or four-year bachelor’s degree program to that of America’s four-year degree program. Having interviewed hundreds of people, I can assure you that a candidate with an American bachelor’s degree in computer science knows what a semaphore or thread is, as well as the average performance of a tree versus a map. I can also say that the average candidate with an Indian master’s of computer science degree does not. (This is not to say all, but on average.)
Yet both are often considered equally qualified for the same job. Often, that job is “write scripts full of Boolean logic,” for which both are actually overqualified. Neither were evaluated on the needs of the position, and, frankly companies don’t know how to hire technology workers in a way that is fair, equitable, or even appropriate. In an ignorant system where the qualifications have nothing to do with the work, H-1Bs serve as a check on the inflated costs.
I’ve said it before and I’ll say it again: There are great developers in India. There are great developers in the United States. But neither are, in general, evaluated or compensated according to any logical method.
Terrible practices permeate software development
Regardless of a programmer’s skill levels, salary, or national status, the tech industry makes it too hard to do good work efficiently and cost-effectively.
Many, if not a majority of, companies still predominantly use the waterfall model of development. They’ve learned to use terms from agile methodologies to describe their terrible software development practices (or chaotic lack of any), but fundamentally nothing has changed in the 20-plus years I’ve been in this business.
Most companies fundamentally develop software incorrectly. They fail at the basic stuff: logging and evaluating requirements and the work required to complete them, using revision control, and iterating development. They assume the only thing for sure is that the requirements (or their understanding of them) will change somewhat by the end of the project and some testing will be done then. Hell, people still debate whether they should have unit tests!
When projects are late, when problems need to be solved, and when things are “on fire,” people still think having more people in the room or on a conference call is productive. Moreover, people think that having more frequent status calls when there is a problem actually accomplishes something.
The industry evaluation of this problem: There is a developer shortage. My evaluation: There is a shortage of managers who fundamentally understand how software development works. Developers love to bitch about management, but good management is as necessary as it is rare.
What should happen to fix the broken developer system
If the H-1B system is reformed in a manner that tightens the supply of developers, it should cause companies to take a look at how they develop software and find ways to do more with fewer (though more expensive) developers. That includes the following: Hire better developers first, adopt good development practices (many of which are well known and undebatable), and finally work with some of the telecommunications tools that would let us better use a global workforce.
Companies should evaluate candidates based on what is actually required for a job rather than arbitrary numbers of years of experience, paper qualifications, and certifications.
Companies should finally start getting really good at discovering and finding use cases and aligning technologies to those use cases.
Companies should focus on developer retention and understand the career path for a developer does not include doing what they did before over and over again forever. They should offer developers a path to growth and even promotion.
What will probably happen instead
Call me cynical, but I don’t think that fundamental reform will happen in most places.
Instead, most companies will probably hire more (bad) managers as they did during the dot-com boom. (I remember at the time having five projects, seven managers, and a commandment to work no more than 40 hours a week due to costs. Millennials: Watch the movie “Office Space” to see the that past and the likely future.)
Additionally, there will be a resurgence of offshoring (which has in the mainstream press become synonymous with outsourcing). Offshoring could be good globalization of talent, not wage arbitrage as it is today, but that would require good practices and structures, not an assignment of “labor units” to a poorly elicited problem.
If nothing changes in how companies handle the fundamentals of development, tightening H-1B requirements may raise U.S. developers’ salaries (though slowly and only to a point), but it will definitely accelerate offshoring.