Demand for top software engineering talent is going through the roof, which makes recruiting and keeping exceptional developers one of a CIO's biggest challenges.. This is especially true if you happen to be in a location where you are competing for talent with a tech giant like Oracle or Google.
Paul Graham, a co-founder of seed capital firm Y Combinator, published a blog post stating following about developers: “The U.S. has less than 5 percent of the world's population. Which means if the qualities that make someone a great programmer are evenly distributed, 95 percent of great programmers are born outside the U.S.”
[ Related: Attention, rock star developers: get a talent agent ]
Graham implores the powers-that-be to allow more exceptional programmers to migrate to the U.S. so the country can remain a technology superpower. Another possibility is for the government to issue more H-1B nonimmigrant visas allowing U.S. employers to temporarily employ foreign workers in specialty occupations. (There's currently a cap of 65,000 on the number of people provided with H-1B status each year, although there are some exceptions to the cap.)
[ Related: The coming war for developers ]
But there is an alternative solution to the shortage of exceptional developers. Why not hire the best people wherever they happen to be -- in the middle of Nebraska, or in Mumbai, London or Sydney for that matter -- and allow them to work remotely?
There can certainly be problems with this approach -- for some companies, at least. For example, Google used to employ remote teams of developers around the world, but in 2009 it started consolidating them into larger centralized teams. "This move enables us to build larger and more effective teams, reduce communication overhead, and give engineers increased options for future projects," Alan Eustace, senior vice president, engineering and research, said at the time.
But running productive distributed development teams is by no means impossible, as many other companies will testify. If it's something you are considering, here are eight tips for success from people who have hands-on experience.
Put communication at the center of everything
"Good communication is incredibly important if you want to succeed," says Matt Mullenweg, the original developer of WordPress and founder of Web development company Automattic. "If you do it right, the best distributed development teams can work better than ones that are colocated, allowing you to compete with the likes of Google and Oracle by doing something they can't.”
So what is the right way for remote developers to communicate with teammates? Mullenweg warns against using email ("It's not collaborative enough") and has specific suggestions for communication tools that can help developers work together. He recommends using a WordPress theme called P2 instead of email, a platform called Slack for team messaging and Google Hangouts for holding developer team meetings.