Remote Collaborative Programming – Give it a try

Remote Collaborate Programming (RCP) is an activity I’ve been dipping into over the past few months and it’s great! Essentially what it is pairing on a wider scale combined with project collaboration from your own home.

With RCP you’re not just limited to two people, you can extend to a group. So far I’ve only tried this with two other people (@JohnnoNolan and @RobCTheGeek) and it’s worked very well. I’m sure there would come a point when there would be too many participants and it would become too difficult to code together all at once so you would have to break off into sub sections, this is where the project collaboration would come into play. The idea is to get together with peopleĀ  to plan and code a project and at the end of a session/multiple sessions have a tangible product to show for your efforts. This project doesn’t have to be something big it could, for example, just be the completion of a Kata.

It’s all very new to us so we are just feeling our way but so far I’m really enjoying it. We collated a list of pre-requisites, they are as follows:

  • MS Visual Studio 2008 w/ C# (Pro orExpress Edition) (IDE)
  • Git(Source Control)
  • GitHub Account (Online Repository)
  • AutofacAutofac (IoC Container)
  • Moq(Mocking Framework)
  • Live Messenger/GTalk/Skype(Voice Comms)
  • MS Live SharedView(Screen Sharing)
  • NUnit 2.5.2(Test Framework)

These are our own personal preferences and others may choose to use alternative similar products. Here’s an article Rob wrote on RCP using a different format.

Our First Session
Our first trio session was slow. We took quite some time to get things setup and learning how some of the software worked, so I would suggest making sure you have everything setup and have a basic understanding of how things work. This will allow you to spend less time on setup and more time on coding. We eventually got down to coding our chosen coding challenge and the processes worked pretty well. Here’s a step by step of what we did:

  1. Arranged the meeting and pre-requisites through Google wave
  2. Everybody to pull latest version from git
  3. Discuss approach of the challenge over skype
  4. Person n to share VS through shared view for other participants to see
  5. Person n to fix any failing tests (not applicable if first to code), refactor and write a new failing test (other participants to watch out for refactoring and possible improvements or advice where knowledge gaps are seen)
  6. Person n to Push and Commit to git
  7. Other participants to get latest version from git
  8. Next person in group to go to step 4

This was our first attempt, it’s a bit rough around the edges but it gave us an idea of how things would work.

Why should you try it
There’s a number of reasons I think RCP is worth a try:

  • You get to code with different people with different strengths and so I find I always learn something new
  • If you don’t have a chance to pair at work this is a great way to give it a try
  • It’s a great way to get code reviews
  • Through discussions you find out about new technologies that could assist you at work
  • The people you are coding with are there because they love to code so you should always finish your session feeling positive
  • It’s a nice way to network and chat to people you might not normally get the chance to
  • It’s all from the comfort of your own home
  • You stipulate your own environment

The hardest thing with RCP is finding a time when you’re free. Everybody has busy lives and it’s not always convenient to commit to a specific time to do it. For me RCP is about having fun there’s not pressure to commit solidly to it and whist it is hard to catch people online it much easier to remote programme than it is to get everyone to meet at a specific location.

If you’re interested on giving it a try drop me an email sara(at) or a tweet and I’ll be more than happy to try some RCP with you.

S :)

Arranged the meeting and pre-requisites through Google wave

Filed under: Technical, , ,

Leave a Reply