For a few years, I've been developing and operating a website with a group of people from around the world. Not even one of us has physically met everyone else on the team, and a couple of us haven't physically met anyone at all.
On top of this, we're geographically all over the place, including a person in the UK (GMT+0) and a person in New Zealand (GMT+12) - literally opposite ends of the globe, and opposite times of day.
A project like this runs into a lot of problems that simply don't exist in a standard office environment, but the benefits of being able to work with people around the world, with everyone working whenever they want makes it very much worth it. The key is to make sure you understand the unique challenges of remote work, and how to work on a nomadic team.
Here are some major tips to avoid a lot of the usual pitfalls:
1. Keep a current list of everyone's time zone, contact info, preferred methods of contact, and roughly when they tend to be available.
Ideally, put it somewhere that everyone on the list can edit it if their info changes - a forum post in a hidden forum tends to be best for this, as you probably don't want to leave a list of email addresses where a spambot can grab it. This is a simple step, but it's often overlooked, and not having it can cause problems ranging from the annoying (phone calls at 5AM from someone who has no idea where you live) to the far more problematic (something goes horribly wrong and you have no idea who you can work with to fix it quickly.)
2. Use the right communication tool for the job.
It's very easy to get frustrated at the inefficiency of some online conversations, but in almost every case this happens, look at the medium used, and you'll find that was a huge part of - and possibly even the entire cause of - the problem. Here's some methods and their pros and cons:
Forum threads: A post made to a forum is usually well-reasoned, proofread, and carefully thought out. This makes it ideal for initial development of ideas, and also makes it a great tool for debating when there isn't a consensus on how to accomplish a major task. Additionally, forum discussions are automatically permanently saved, and it's usually very easy to find an old discussion, even months or years after the fact. The main weakness of forum threads, however, is speed. Most people check forums no more than daily, and many only check in 2-3 times/week. Even when people are actively watching a thread, since posts tend to be fairly large, there's little opportunity for quick messages and replies. Forums are therefore best used for important and detailed, but non-urgent discussion.
Wiki articles: The biggest advantage of these is also the biggest disadvantage - anyone can edit them. This can be a great way to produce a collaborative work, especially when it's one that involves people who have an interest in your project, but don't actually work on it (users, customers, etc.) However, there's often a constant need for reversion due to unwanted edits, both accidental (edit collisions - where 2 people edit an article within seconds of each other and the first edit is discarded) and intentional (vandalism, etc.) These are best used when the goal is to have many people work on the same document, and the need for careful monitoring isn't enough of a problem to be a serious deterrent.
Instant Messages: The main benefit of these is the "instant" part. In many cases you need a quick answer to a simple question, or you need to discuss something with regular, back and forth conversation, and IMs excel in both of these functions. Most IM programs also allow you to quickly send a file to the person you're talking to, and this is a great use for them as well. The main disadvantage is IMs only work when someone is actually there to receive them. They also tend to be more distracting than most other forms of online communication. Especially when you know the person is working on something that requires full concentration, if it can wait, email tends to be the beter answer.
Email: Email's main advantage is that it tends to be both personal (as opposed to something like a forum where many are involved) and relatively permanent. This makes it ideal when you need to send something to a specific person, and it either doesn't need an immediate reply, or it's going to someone that you can't directly contact due to time zone issues. Email is especially useful for people involved in a minor role in your project - they probably don't check your project's site daily, but they'll check their inbox at least once regardless of what they're mainly working on. Like forum posts, the main downside to email is the reply speed, though email also adds an extra level of frustration in that spam filters occasionally discard valid messages. Because of this, if you know the person will check a forum, consider using a forum's private messaging function for the same results, minus the chance of losing your message to a filter.
Voice Chat: This is probably the closest thing you'll get online to a face to face meeting, and a lot of the traditional problems with online communication (like not hearing tone of voice, and slower typers having a hard time keeping up with a conversation) can be completely avoided. However, since people have to be both physically there and speaking, voice chat is impractical with large time zone gaps, and isn't always an option for people who may simply not be somewhere they can talk easily. Also, even if you run into neither of these issues, voice chats generally have to be scheduled in advance, so it's best to save them for more important conversations.
Text chat: Text chat loses the personal touch of voice chat, but also loses most of the drawbacks, while gaining the ability to be easily logged and reviewed later. Like with voice chat, the main issue is that you usually have to schedule this in advance, so you need something sufficiently important to justify this.
3. Use meetings sparingly.
When everyone's in the same building, it generally isn't terribly difficult to get a group of people to agree to be in the same room at the same time. When everyone is remote, however, this task ranges from difficult (long commutes, very little overlap in schedules) to just plain impossible (no one is in the same country, and the costs of getting flights for people in several different countries would be astronomical.)
Of course, there's a variety of software to handle meetings online, ranging from voice conferencing to regular chat rooms. However, the time zone gap and the fact that people not attached to an office tend to have weird schedules still makes it much harder to actually arrange a meeting. In many cases, they involve someone being there at 4AM, and understandably, if the meeting turns out to be unnessary, they aren't going to appreciate being there at that hour (to say the least.) The 2 big questions to ask are:
-Is the benefit of the group collaboration sufficient to justify extreme inconvience on the part of people not in the country?
-Will the meeting accomplish anything that a forum thread wouldn't, and if no, is the time saved important enough to justify a meeting over a discussion thread?
If you answer no to both of those questions, it's usually a bad idea to call a meeting.
4. Read text carefully, and don't be afraid to ask for clarification.
Sarcasm is usually obvious when it's face to face, but when you're communicating purely in text, it's much easier to miss, and much easier to accidentally offend someone. Additionally, many statements have more than one meaning, and while body language and tone of voice tend to make it obvious what the intended meaning is, text alone does not. If in doubt, don't be afraid to simply ask for clarification. Also, when typing, if you realize you're about to say something that can be taken more than one way, you may want to choose different words, or simply use an emoticon to make it clear you're speaking in jest.
5. Make sure there's a central source of important information - and make sure everyone actually uses it.
There's few things more frustrating than writing 1000 lines of code, drawing up a huge schematic, or writing a long article only to realize after the fact that a) the work was already done by someone else or b) you just built something completely useless because someone found a better way to do it, and it doesn't use what you just made.
This is easily avoided by making sure everyone knows what's needed, and who is currently doing what. Depending on the size of the project, you may want to use a full project management system with to do lists, the ability to "check out" tasks, etc, or you may find that all you really need is an up to date forum post. Regardless of the method chosen though, there needs to be some way that everyone can instantly get an overview of the status of the project.
6. Identify conflicts quickly
In a traditional office setting, conflicting ideas usually become apparent very quickly, and personal conflicts even more so. This generally allows for reasonably quick resolutions. Online, where people often go days with no contact with each other - and months with no direct contact, conflicting ideas can result in half of two completely different approaches being built, and a personal fight between two members of a team can go unnoticed for so long that it finally explodes - usually at worst possible time.
Idea conflicts are easy to solve - get everyone to agree that if there's a major disagreement on how to accompish something, the main person raising the objection should make a full forum post explaining his idea and why he thinks it's the better answer, and that he should then notify the people directly affected by email. In this way, a full discussion will result, and in most cases, one of the idea will emerge as superior.
Personal conflicts are a bit harder to deal with, but again, the key is for people to agree to post that there is in fact a conflict. In this way, a nuetral party can try to mediate before the situation gets far worse.