Development is a creative endeavor. Often developers are creating something where there was once nothing. For most us, the thought of being productive for 8 consecutive hours 5 days a week is laughable. 2-3 hours on a single problem is enough to turn most people’s brains to mush.
As a company, we understand this and have abolished the 9 to 5 work week. People work where and when they feel they’ll be at their best. We don’t require people to be working during business hours. In case of urgent issues, we can call people on the phone, but in practice, that rarely happens. To many traditional companies, this sounds like anarchy. Surprisingly, it isn’t. We still collaborate (usually with some combination of IRC, Skype, and Ginger), we still discuss problems as a team, and we can still pair program.
If you’re wondering how we make it work, the answer is simple: we hire trustworthy responsible people. Not surprisingly, these people know how to get things done and know when they need to work together to do it. If you hire responsible people, they’ll make their schedules work, even across multiple timezones. If you don’t hire responsible people, well… you’ve got a bigger problem.