Image by SpoiltCat
1. Be strict with email
Don't eliminate email but be disciplined in using it. Also, you don't need separate accounts for personal and business use, but make use of filtering. Keep all the conversations for later search.
2. Use a project collaboration tool
A project collaboration tool must help you keep all your stuff together: tasks, milestones, notes, messages, documents. Sometimes it's easy to let go of this idea, with excuses ranging from: "but what we're doing is not actually a project" or "we use email and we're fine". Email cannot replace properly the role of milestones or tasks, for instance.
3. Write everything down
There isn't a straightforward replacement for the water cooler in a real office. But in a way, this might be an advantage. It happened to me a lot of times to discuss on ideas with my colleagues, only to notice later that we remember less than half of the ramifications our conversation took.
4. Brainstorm and expose
Save any idea that comes to your mind and share it. Let your colleagues "play" with your notes. In turn, find different approaches or fine tune your team mates' proposals. A thing to be careful about here is to avoid going too deep in one direction, since this can be the recipe for getting nothing done.
5. Keep documents in one place
Resist the temptation to send documents as attachments to emails, but upload them in your collaboration application. You don't need to build a hierarchy for the files, just use the search approach.
6. Turn limitations into advantages
In a real office, if someone has a question for a co-worker usually goes to her desk to ask. This is bad, since it creates interruptions and breaks the flow. When working in a virtual team, don't try to mimic the same behavior. If the colleague is not online on IM, don't wait for her but leave a comprehensive message, preferably in the collaboration tool.
If you have a question don't just ask it and wait for an answer, as this may lead to very long conversations. Instead provide all the options you thought about as possible answers, specifying why you like or dislike each of them. This diminishes the time spent on an issue, thus increasing efficiency.
7. Set a working schedule
Everything is set up regarding the way you interact with the colleagues and you're enjoying the flexibility of your own schedule to do the work. But in time, this can get out of control if you don't establish a working schedule for yourself. Spreading the working hours throughout the whole day may affect your personal life and you'll end up "working" all the time, not knowing when it's enough for a day.
Having a schedule also helps the other members of the team, since they would have more accurate expectations on when you're going to do various tasks.
8. Set iteration milestones
Working in iterations is a good practice to have a clear overview of what needs to be done next. It also helps to see if the deliverables were met. Weekly iterations offer a convenient time frame, but depending on your team this may be reduced or extended. However, extending them too much would be like not having them at all.
9. Stick with a given workflow
If you started to use a collaboration tool, keep everything in there. Don't scatter discussion about features of the product in emails, but use messages in the tool. Don't ask for things on email or IM, but set tasks.
10. Get to know your colleagues
If it's possible, meet your team mates personally, go out for a drink or make weekend trips. Getting a glimpse into their personal life and also exposing some of yours helps with the work. If that's not possible, try to connect with them on social networking websites. Find out their hobbies, maybe they match yours, and exchange thoughts about them.
I would not state that this list is exhaustive, but I think it covers 10 important aspects that lead to easier communication and a better workflow in a virtual team. Almost all of the points rely strongly on self discipline, but once it's achieved, it's easier to keep going.