Paul Graham's latest essay makes an impassioned plea for more liberal immigration policies in the United States for high-tech workers. Software startups are desperate for great developers, he writes, and the notion that we can meet this need simply by training more Americans is idiocy. The only way to satisfy Silicon Valley's hunger for engineering talent is to open the floodgates and let in more skilled foreigners.
The essay's central thesis is convincing. America's immigration policy is idiotic. It is clearly in the country's interest to let in more highly skilled workers. And you can't just turn any random individual, even a highly intelligent and motivated one, into a great developer. To a large extent the best programmers are born, not made.
Paul is doubtless correct, as well, that "if we let more great programmers into the US, they'll want to come." The implication of his title, that every developer in the world would like to move to America, is an exaggeration. Deal with it: hyperbolic titles are how internet authors get hits nowadays. What he really means, as his last paragraph makes clear, is that the country needs to let in "a few thousand great programmers a year". That seems reasonable.
The assumption I would question is that companies can only benefit from foreign programming talent if it is sitting in the same room as the rest of the team.
In truth, the very same technology that has heightened the appetite for great developers to a fever pitch has made it much easier to work with them remotely. When I first started out in the software contracting business, in 1998, there was no Skype (and definitely no Slack), no Basecamp, no agile software development and no smartphones. Over the past 15 odd years it has become dramatically easier to manage teams of distributed programmers productively using modern internet-based communication and project management tools.
Of course, having everyone is one room is the best option. Face-to-face discussions are always easiest. Impromptu brainstorming around the coffee machine can lead to important insights. Working across time zones mean that work days may have only a few hours of overlap. But the trade-off isn't between working with great developers remotely or having them on-site. If you don't want to work with remote talent then you'll probably have to lower your hiring standards significantly or do without those extra developers entirely.
Even removing all visa restrictions completely wouldn't mean that every great developer in the world would be aching to immigrate to America. Having lived, worked and hired great developers in Europe for over 20 years, I can say with assurance that there are many who patently don't want to move to Silicon Valley. Here in Europe we have rich history, diverse cultures, a less frenetic lifestyle and more colorful banknotes. Some would doubtless appreciate the chance to experience America firsthand, but even they don't necessarily want to live there for more than a couple of years.
Paul concludes his essay by saying that failure to take action to admit more high-tech workers would be a "colossal mistake". He's right. But companies shouldn't cling to the notion that every developer has to be sitting in their office to be of value to them. Experiments in outsourcing have not always been successful in the past, but the march of technology is making it easier and easier to work productively with remote developers. Ignoring this option would be an equally colossal mistake.