I'm getting very excited about the educational potential of remote pair programming. We've been trying out remote pair programming on our LocalSupport project as part of the EdX Software as a Service online course.
The debate about when to use pair programming in real world projects still rages, but from my personal experience it's a huge win almost every time from an educational perspective in terms of programmers learning new languages, techniques and skills.
However one of the challenges is finding someone to pair program with. To that end we created a shared Google Calendar that includes the times and contact details of everyone wanting to be pair program.
Programmers who want to join the calendar fill out the following form:
and at the moment we then add them by hand to the calendar, as well as giving them edit permissions to allow them to change their availability over time. Naturally in the long run we'd like to totally automate this process.
So far we've had over 10 successful remote pair programming sessions with from 2 to 5 programmers participating in each. You can see recordings of those sessions here:
What we're also finding is a split between those relatively new to the Rails stack we are working on (mainly EdX 169.1X students) and those with more experience (those who have completed EdX 169.2X). The latter now tend to be working on our LocalSupport non-profit project, while the former are starting to remote pair with each other to work on simple ruby and rails assignments.
I've also started to discover professionals like Joe Moore who have been remote pair programming for a number of years, and am discovering that there are a lot more options beyond the Skype and Google Hangouts we've been using so far.
What's really exciting here is the combination of the Massively Open Online Classes (MOOCs) with the up close and personal feedback of pair programming sessions. A very powerful learning combination in my opinion. Just navigating all the libraries in the rails stacks and getting used to git pull requests etc. is the kind of thing that pair programming really helps for. Lots of relatively confident learners can get put off when they are stuck alone battling against these things.
If we're lucky this kind of calendar for pair programming opportunities can be embedded into MOOCs and scaled so that any time of day or night you'll always be able to find someone to pair with, and the learning opportunities will be endless ...