The WSJ posted last week about The “War” For Top Talent In Silicon Valley
First takeaway: A shortage of programming talent has developed in Silicon Valley and San Francisco. This happens whenever there is a big expansion of demand, such as in 1999. It starts in California, but eventually spreads to all of the major tech centers in the US, and then overseas to Lyon, Saint Petersburg, Bangalore, and finally the jungles of Thailand. So, be prepared. The global economy is growing quickly and absorbing labor. The next time this happens, it won't start in California. It will start in India or China and spread the other way.
Second takeaway: Managers are torturing themselves trying to hire great engineers in locations where there aren't enough of them. Why? According to Okta's McKinnon, “[programming team members are] not incrementally more productive when they’re sitting together – it’s 10x more. They get the foundation of things right, they don’t have to rework things, they come up with innovations. From my perspective, it’s well worth the money.”
When I hear comments like this, I wonder what the speaker could accomplish if he/she took a small amount of time to learn some good practices for working with distributed teams.
A startup is well advised to follow Sun Tzu's timeless advice, which is basically to only fight battles that you know you can win, and otherwise, change the rules. Okta is in a box, fighting against Facebook, Google, Zynga, Twitter, and a bunch of other startups with funding and a decent story. So, let's look at McKinnon's advice and figure out how we can change his rules to get out of the Silicon Valley box.
Some problems: People are 0X as productive if they aren't working. How long will they wait at 0X to fill those jobs? I suspect that the 10x really comes from having the right people, not from stuffing them into room. Does local recruiting force you to settle for people that are not in the 10x category? Programmers have odd shedules. Once people do join the team, how often will they be working in the same room?
"They come up with innovations": Even if I can get good local contributors, I like to build a single global team in which everyone is included as a full creative contributor. This will help us banish the vision that was raised in this article of "outsourcing" to remote offices. It will remove the limits to innovation.
"They get the foundation of things right, they don’t have to rework things:" I agree that a full shared discussion of architecture and approach is likely to eliminate many problems and rework. You can have that discussion with a distributed team if you prepare a few materials and keep the discussion running.
Once you have that capability, you can hire people that will give you the 10x productivity boost.