About 18 months ago, Basho Technologies began the transition from a traditional company to a distributed company.
The hardest part of the transition was the beginning, when only a few people worked remotely. It was just too easy to make major decisions on the way to the coffee shop, effectively cutting remote employees out of the loop.
We currently have people in every time zone of the US, plus outposts in London and Berlin, and no more than two or three employees in any one city. This forced us to examine and change our processes. We meet on Skype. We debate major code changes and new features on long email chains.
Overall, it has been a huge win. We were able to hire amazing talent that we couldn’t have hired otherwise. Describing our technical decisions in email has led to better decisions, plus a convenient record of what we’ve done. And we’ve fully adopted tools like AgileZen, GitHub + Pull Requests, and Yammer. (Interestingly, we had a vibrant IM backchannel before we went distributed, and it has maintained the same amount of activity.)
That said, sometimes I would kill for a whiteboard session.