I often have a bit of time that I could spend on other tasks, but couldn’t set up a true share-and-pair session due to logistics and communication issues. A friend of mine suggested that we “pair” over github. I took the idea to the next level by creating a true ping-pong pairing project where each commit is a ping or a pong.
Here’s the basic setup:
- Create a README with the full description of the “task” at hand
- Create a github repo and add your ‘pair’ as a collaborator.
- Write a failing spec
git commit
andgit push
Then, each individual takes turns doing the following:
- Get a tweet/alert/message/email… whatever… from your pair
git pull
- Run the specs and see the failing one
- Write code until it passes
- Write a spec that fails based on the README
git commit
andgit push
- Tweet/alert/message/email your pair (maybe github notifications will work?)
Basic benefits are : Zero setup, no need to learn other editor, a full commit history for every single step, no need to coordinate schedules.
Clear drawbacks are : No immediate guidance, less pushing out of comfort zone, less intensity, slower
It’s not the same as pairing since you’re not letting the discussion and 2 sets of eyeballs help, but it’s a lot like the mute pairing session Corey Haines talks about at Code Retreats. I’m interested to see where it will go. Maybe it could even go towards a “round robin” implementation? (i.e 3 or more collaborators?). Check out our little experiment on GitHub to see how it goes.