I’m in the middle of taking a Engineering SaaS course offered by two great Berkeley professors (Armando Fox and Dave Patterson), and one of the core concepts they are advocating is the benefit of pair programming.
Unfortunately, I’m finding it very difficult to find someone to pair with remotely, even though the technology using Google Hangouts seems to be a great tool for enabling remote pair programming. In my case, I can only free up pockets of 15 minutes here and there to work on the class exercises, which does not lend itself well to finding a stranger on the web to pair up with and work in those tiny chunks. Interestingly enough, I am finding that using test driven development while working in 15 minute chunks is working really well, as TDD allows me to easily pick up where I left off with confidence in the quality of code that I’m creating. Now I will say that I’ve participated in and even facilitated several coding dojos over the past 12 months, and during those sessions we have used pair programming in person, and I’ve found that the technique of switching roles between one writing tests and one coding to pass the tests has been great for pushing the thinking in real time towards developing quality solutions. Also, the benefits of a second pair of eyes and a second set of experiences while coding also helps sharpen ones skills. Coding exercises done as a pair definitely has value as a learning experience.