One defense the industry lobbyists like to use when confronted with overwhelming evidence that there is no STEM labor shortage, even in the computer fields, is that software developers are not interchangeable. Typically the lobbyists are referring to specific skill sets, such as Android (a red herring, as I’ve explained in detail before), but in some cases they are simply talking about raw quality. As I’ve stated many times, I strongly agree with the lobbyists on this point. For instance, studies have shown that there is at least at 10::1 ratio in productivity between the best and weakest programmers.
However, this applies equally well to both American (U.S. citizen/permanent resident) and foreign (H-1B etc.) programmers. The lobbyists would have you believe that the foreign workers are of uniformly high quality, but that is certainly not true.
I was moved to write this post after seeing these comments on Slashdot, a popular techie news site. The Slashdot posting, titled “What Portion of Software Developers Are Bad at What They Do?”, says in part
We are looking to fill a senior developer/architect position in our firm. I am disappointed with the applicants thus far, and quite frankly it has me worried about the quality of developers/engineers available to us. For instance, today I asked an engineer with 20+ years of experience to describe to me the basic process of public/private key encryption. This engineer had no clue. I asked another applicant a similar question: “Suppose you wanted to send me a file with very sensitive information, how would you encrypt it in such a way that I would decrypt it?” The person started off by asking me if it was an excel file, a PDF, etc. In general, I’m finding that an overwhelming number of developers I’ve interviewed have poor understanding of key concepts, especially when it comes to securing data.
To me, that second example, in which the applicant thought that one could not use the same encryption algorithm regardless of the file type, epitomizes the problem. Though it is technically not about programming per se, it certainly shows that that applicant “just doesn’t get it.”
In my experience, a substantial portion of computer science students, including foreign Master’s students (the industry lobbyists’ favorite group; see below), “just don’t get it.” It is usually not as blatant as the above “file type” example, but of very serious concern.
This point is directly relevant to proposed legislation now in Congress, in which a common provision would give special visa and green card deals to foreign STEM graduate students at U.S. universities. The rationale for this is that these are supposed to be the “good” H-1Bs, the ones whose addition to the U.S. workforce raises the overall quality. But the reality is just the opposite: As shown in my research and those of others, the average quality of the foreign CS grad students is LOWER than that of their American peers. (I do have to add, as always, that there are also some really brilliant ones, whose immigration I strongly support.)
All this matters — a LOT. Not only are the foreign worker programs reducing job opportunities and wages for American software developers, the programs are also resulting in BAD CODE that affects each and every one of us. The IT disaster in the rollout of Obamacare is a perfect example, very expensive (including in terms of Obama’s political capital), harmful to many who were most in need of it, and reportedly due to incompetent programmers, said to be largely H-1Bs.
Similarly, consider the fact that one of the major companies in the U.S. electric power grid is in the process of firing American ITers and replacing them with H-1Bs. Putting aside the issue of possible national loyalty conflicts, the prospect of less-competent programmers working on this key to our security is rather scary.
Congress should ignore the industry campaign dollars and look at the big picture.