Question

Lately I've been experimenting with using a collaborative text editor (or plugin such as NppNetNote for Notepad++) for two or more partners to edit source code. I've been met with unexpected success, and the workflow differs from anything I've ever experienced. My findings:

  • It's fun to fight over code, but also very satisfying to collaborate on it in real time.

  • Two people can work collaboratively or separately, and be constantly aware of each other's changes.

  • The comments end up becoming a free-form IM conversation about the code around them.

  • The medium is enormously less restrictive than trying to work back and forth over IM proper.

  • It's like pair programming, but with no overhead to switch roles between driver and navigator.

Has anyone tried this before? What were some of the advantages and problems that you encountered? For those that haven't tried it, I strongly encourage you to find a friend (or two, or more!) and make an attempt.

Edit: See Wikipedia for something like more explanation, though in the context of pair programming specifically.

Was it helpful?

Solution

I often use GNU screen to share terminals (and terminal based editors) for pair programming and remote collaboration. I think one of the most important things that can make this go smoothly is a voice connection (phone, VoIP, etc.) with the other collaborators. Without a voice connection, you incur a lot of overhead and clunkiness as you have to IM (preferably in a separate window) at the same time.

Short sharing the same terminal, each sharing a separate terminal (her read/my write, her write, my read). This allows for simultaneous use but also prevents you from working on exactly the same file.

I've also been using tmux recently (a program similar to GNU screen) and while I find it better in some aspects I find other aspects less desirable.

OTHER TIPS

Yes, using SubEthaEdit many years ago I did this for a while.

What you lose is the constant communication/chatter, unless you also have a voice link.

Also, "pair programming" usually means two hands, two brains. This is a very different experience than four hands, two brains, because you're tempted to end up working on separate things. If you do, you might as well just be checking in your code to a version control system and sharing it back and forth.

Licensed under: CC-BY-SA with attribution
scroll top