At Xebia, we work quite a lot with teams distributed across the globe. In the true spirit of extreme programming, that means your pair programming buddy might very well be in a completely other timezone. In my team, Mikogo is quite a popular solution in situations like these. However, it is not always the most efficient solution. Especially if you and your team mate are working together remotely on a system neither yours nor your buddy's. Which is exactly what we are doing if we are working on our EC2 based deployments. (That basically means someone from our Dutch team working with someone in our Indian team on a system in the US.)

In those cases, you definitely need to take a look at screen:

Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells).

Think of it as VNC for terminals sessions instead of desktop sessions. (That may not be a very accurate description of what it actually is, but for sake of this blog post, that will do.) Screen is just awesome. True, it does not give you a full-fledged Graphical UI, but - hey - who needs that anyway? The terminal has never let me down. In fact, if you are working on deployment than it most likely involves systems without X support or a frame buffer anyway. So it does not make an awful lot of sense to use Mikogo to transmit loads of information from your own Desktop across the Internet (pixels) to another Desktop, just to share the same viewport on a bunch of characters.

The screencast below shows you how to do it. It's fairly easy. It will demonstrate how two guys - one interesting fella called Wilfred and his compadre Jack - are working together on the same Linux box. The upper terminal is mine, the lower terminal is Jack's. Just imagine these terminals to be opened on our own systems.