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.

  • 2
    Don't forget to mention Mozilla Skywriter (formerly Bespin) as an option for collaborative coding: mozillalabs.com/skywriter – VirtuosiMedia Sep 22 '10 at 21:11
  • Wow, I've never thought of programming that way – TheLQ Sep 22 '10 at 22:03
  • 1
    I love the phrase "I've been met with unexpected success!" – Paddyslacker Sep 22 '10 at 23:14
  • @Paddyslacker: What, is my New England showing? – Jon Purdy Sep 23 '10 at 6:30
  • Seem like it would make remote code review easier. – JeffO Sep 24 '10 at 19:48

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.

|improve this answer|||||
  • I use screen with one of our engineers often, and we both enjoy it. We're equipped with headsets so we can type as we talk on the phone. – the Tin Man Nov 26 '10 at 6:17

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.

|improve this answer|||||

Not the answer you're looking for? Browse other questions tagged or ask your own question.