(This is part 3 of an ongoing series about my experiences with telecommuting and the tools and practices I feel help make it work)
This post has a little bit of crossover with second post in this series, so you'll have to forgive me if you see something I talked about before. Now that's we've identified the issues of trust and accountability, the next big issue a telecommuter faces is one of collaboration.
So now that you've gotten an environment created where you are being trusted to do your work as assigned (despite what people think, just doing a good job isn't always enough in the minds of those who manage programmers and designers), and you have a way to be held accountable for the stuff you are working on, we are on to the sticky issue of collaboration.
As an aside, it is important to understand that if your company creates things that other people use, there is a big difference between how you communicate with your customers and how you communicate with your co-workers. You might consider me cynical, but your communications with your customers need to be in such a way that you have control over the channels. Otherwise you open yourself to chaos and miscommunication. Although we do have email addresses used for support, we are consistent in our messages to our customers that we need them to use the ticketing system. Otherwise they run the risk of having their problems not dealt with in a timely manner.
Internally, our main method of collaboration is IRC. We have our own server, and we use IRC as the second line of support for our clients, encouraging them to log in and join us in IRC for problem solving sessions that just can't be done via email. We all stay logged into our main company channel and usually logged in to the main support channel. By having one central location where we hang out online, it allows us to (a) log all conversations for later review and (b) allow digging find solutions we talked about earlier but never turned into internal tickets.
However, I do find that the nature of IRC at work is much like instant messaging: it creates an air of perpetual interruption. Luckily, there are easy ways to deal with the problem. My IRC client lets me set alerts for messages. I have it chirp out very loudly whenever someone in IRC types my name in a message. That way, I can concentrate on coding and then shift over to IRC when my attention is required. Otherwise, you would be forever checking the chat window to see if I need to deal with anything.
If we didn't already use IRC (it was being used before I got here) I would recommend using something like Campfire. It's a good mix between IRC and instant messaging, and you can find some interesting clients for it if you don't want to use a web-based interface. I imagine the only bad thing is that someone else is storing logs of your conversations. Personally, I don't worry about that sort of thing since it's very unlikely anyone who really cares about what you're doing will see those conversations. Plus, it is not free but I think the service is worth it.
What you use isn't really important, so long as you're using something that allows everyone to be in one location and that you can log what's been talked about. The ability to easily share ideas and links is critical. To me, email lacks the immediacy that a telecommuter who has to collaborate with his workers on a regular basis needs. Plus, emails are way too easy to ignore. How many times has a colleague who you suspected didn't want to do something for you claimed "I never got that email."
So typically we will discuss things in IRC, then follow-up with either internal tickets or emails that draw in people outside the company if required. There is the odd conference call for myself, but my co-workers seem to have more of them than I do. Our weekly meetings are done in IRC as well, eliminating the need for what would likely be a time-wasting 7-person conference call full of stops and starts and dropped calls. IRC for the win!
I'm sure I've only scratched the surface of collaboration for remote workers, but I think if you make it an early priority to have a communications method where all workers can hang out without giving it their constant 100% attention, then you will find a more natural workflow will emerge. For telecommuters, it's all about the work flow.