The simple fact is, hiring, retaining, and managing people is a difficult juggling act involving many trade-offs. David is simply pointing out that co-location is one of the trade-offs that many people call a “deal-breaker” while simultaneously bemoaning a lack of available talent.
IF you have plenty of talent within walking distance of your office, don’t hire remote, no problem. But if you one day find yourself unable to get the A players you need, all he’s saying is either hire remotely or don’t complain about the lack of talent.
Not to mention how off the spec most of their work was and our clients were always left dissatisfied. I think that's part of the reason I left within a few months.
Remote working is amazing provided you can get a solid, self motivated person or team who are on the same wave length as you - but it's incredibly tough.
To be fair, DHH isn't talking about outsourcing to dumb but cheaper devs. He is talking about hiring really good people, who won't or can't move to San Fransisco (or wherever), and probably cost as much or close as devs in SF. I doubt 37 Signals hires remote workers who check in code that has to be debugged before it works.
iow I am saying, respond to what DHH actually said.
More importantly, I don't want have to abide by some API to interact with another developer. Hell, if I want to play toss with a nerf football with one of the other developers, I should be able to do that (of course, if the want is mutual). Which technology will allow me to do that?
I worked at a startup last summer. The developers and I would hangout outside of the "war" room, playing call of duty, grabbing some beers, or whatever sparked our interest. The times outside the workplace are often the most memorable in a job.