I work at a company of twelve (Fictive Kin, whom you might remember from Gimme Bar and LeakedIn that were on the front page last week), and every single employee is a remote employee. We have people on the US East coast, Canadian East coast, US West Coast, Central USA, the UK and Denmark. So when you factor in time zones, varying civic/religious holidays and the fact that many of us attend and/or speak at conferences around the world, you'd think that team "management" would be a nightmare.
As it turns out, it's not that bad at all.
Having everyone working remote is actually a blessing - it means that all of our processes are optimized for an asynchronous workflow. We use a private IRC server for all internal communications, email for conversations that need to be a bit less ephemeral, a tracker for our various projects (Pivotal, in this case) that need attention, Dropbox for file transfers and wireframes/mockups, Google Docs for spreadsheet-y things, Google Hangouts and Skype for video/audio communication, and our organization Github timeline for all things code-related.
Additionally, we try to keep the management overhead to a minimum: Weekly company calls on Fridays where we discuss internal dev/design things that happened over the week and what movies we saw or what level our Diablo characters are at, and then project-specific calls as needed during the week. All but the all-hands call on Fridays are optional; if you don't have anything to say, then you just don't join the call. We also try to get together for a more face-to-face gathering once a quarter, and try to pick a fun and convenient city in the world to meet in.
It's not black magic. It just takes good people and some minimal async-focused processes for it to work. Hire bad people, stuff goes bad. Implement too many synchronous (read: obligatory meetings, calls, timesheets, status reports, etc.), and stuff goes bad.
As it turns out, it's not that bad at all.
Having everyone working remote is actually a blessing - it means that all of our processes are optimized for an asynchronous workflow. We use a private IRC server for all internal communications, email for conversations that need to be a bit less ephemeral, a tracker for our various projects (Pivotal, in this case) that need attention, Dropbox for file transfers and wireframes/mockups, Google Docs for spreadsheet-y things, Google Hangouts and Skype for video/audio communication, and our organization Github timeline for all things code-related.
Additionally, we try to keep the management overhead to a minimum: Weekly company calls on Fridays where we discuss internal dev/design things that happened over the week and what movies we saw or what level our Diablo characters are at, and then project-specific calls as needed during the week. All but the all-hands call on Fridays are optional; if you don't have anything to say, then you just don't join the call. We also try to get together for a more face-to-face gathering once a quarter, and try to pick a fun and convenient city in the world to meet in.
It's not black magic. It just takes good people and some minimal async-focused processes for it to work. Hire bad people, stuff goes bad. Implement too many synchronous (read: obligatory meetings, calls, timesheets, status reports, etc.), and stuff goes bad.