My company is using me as a sort of guinea pig for having developers on both sides of the US. The main office is located in Denver, and I'm in Louisville, KY. I've been trying to come up with ideas to make the remote development experience line up better with the experience in the main office. It obviously will never line up perfectly, but I think we can still make it better.

For reference, we work primarily in Java with Eclipse being the preferred IDE.

So far I've come up with:

  • Instant Messaging/Skype - Can act as both a basic in/out/busy system and a quick communication system.
  • Development Portal - A simple web page with links to important documentation or references for packages we use in each project and any other useful information.
  • Cruise Control - So we don't waste as much time pulling down and then worrying about broken builds.
  • VNC - For the times I want to show someone code that has no business being checked into Git yet, or when I need to walk through a series of screens for critique/advice.

What other tools are available that we can use to help me feel less like I'm stranded on a desert island?

+1  A: 

I've found WIKI type apps pretty helpful. They allow you to have threaded discussions, without spamming everyone over e-mail.

Jay Mooney
+1  A: 

You should maintain some way to communicate design decisions through a medium that retains the flow and content of the conversation. I'm developing in a team that communicates somewhat informally through our blogs (with entries and comments following), but it would probably be more efficient to use a wiki or a threaded discussion system.

What concerns me is that of your choices above, the only thing close to this type of functionality is the concept of a development portal. If you don't have a really convenient means of voicing opinions and plans, you may lose some of the details discussed over phone or a quick IM. It's also nice to have a format where you can take time to think big before posting.

If practical, it would probably really help to have a face-to-face at some point, too.

+2  A: 

I would take a look at:

  • Campfire for instant messaging. It makes all transcripts for all workers searchable, is web based and is just a really nice way to do online collaboration by IM.
  • If you're going to have a dev portal, I'd strongly recommend a wiki type interface... and if I can make a personal recommendation, Fogbugz is a fantastic option for this.
  • One thing I'd also take a look at is Groove from Microsoft for synching documentation. I've used it in the past and found it worked really well for making sure everyone had the same version of documents. A wiki would also help with this, but some things just need to go in word docs sometimes.
+1  A: 

I'd recommend some sort of tracking dashboard that both sides can view which will show the work done today everywhere and general progress. Preferably online so people will be able to see 'live' what's going on.

Also, wiki/forums are a must.

There are plugins for eclipse that allow remote pair-programming, which can be a bit tough for real programming, but is great for code reviews. Did I say you must code review between teams? :)

+1  A: 

Some people in our company use IRC, so that they can stay in sync and avoid flooding mailboxes.

Xavier Nodet
I second this. I work on a project in my spare time with three developers, me (in the US), a guy in France, and a guy in Australia. IRC is perfect because everyone (not just the coders) can hang out and have a full discussion. You also might look at an IRC logger to save the conversations, too.
Bob Somers

We have our development office in Morocco, and we use Skype for instant messaging (not for telephone, the network is too bad).

The other tool we use that I can really recommend is Mikogo (, for screen-sharing and online meetings.