Me and a Simone, both at the Software Craftsmanship mailing list, tried out an experiment in doing remote pair programming today.
Since both of us are comfortable with C# and NUnit committing this first infrastructure-experiment to using that combination felt the right way to go.
To do this experiment we started by having gmail chat as a base for all other communication channels. Next step was to get audio working via Skype. Both of these tools worked hassle-free.
Then we turned our attention to desktop sharing. Simone had looked up some alternatives yesterday, and we tried out Teamviewer first.
Teamviewer was fast and easy to use. But sadly the free edition just ended after ten minutes.
So we tried the free SharedView from Microsoft. This turned out to be too slow, with mouse movements showing up after about 0.5 to 1 seconds.
We gave up on the desktop sharing idea, and focused on a second approach. In that approach we share only the source files via googlecode. Googlecode uses SVN for source code sharing, and both me and Simone used TortoiseSVN to synch the files.
I added Simone to one of my already existing projects to get going fast.
Then we took turns writing unit tests and production code, committing changes as we went along.
All along we kept communicating via Skype.
We choose one of the smaller problems from the TDD-problems* site, the Template Engine.
To measure time we used online-stopwatch.
One problem was that I used Visual C# Express edition, while Simone used Visual Studio professional, and there were conflicts between .csproj/.sln file formats. We solved this issue by only doing edits in one file, so to avoid this hassle.
All in all we spent almost two hours trying these things out. It was not hassle-free, but that we didn’t expect either. It was an experiment. You can see some of the resulting code in two of the screenshots nearby.
View from my computer
Template engine class
We decided to try more another time. One idea is trying the gobby multi user editor, and maybe using python or ruby instead of C#.
* If you’d like to contribute to the TDD-problems site, please drop me or one of the other contributors a mail or leave a comment on this blog post.
Tags: programming, tdd, pairprogramming, software craftsmanship