For the past couple of days I’ve been pair programming again, for the first time in a quite a while. We decided to pair on this particular piece of work because it involves low-level statistical work which is good business knowledge to share, and also because the work involves us poking our heads around a new area of code that neither of us were familiar with.
It’s been quite refreshing slipping back into it and the thought process and discipline it entails. The “commentary” that the person typing needs to add to verbalise what they are doing (and should do so that the partner doesn’t fall asleep!) provokes discussion and refinement of thoughts and ideas.
Basically it has reminded me that we should do it more often, especially with tricky/new/unfamiliar areas of code.
Some observations have sprung to mind since diving back in, when comparing pair programming with individual programming:
- the quality of analysis has been especially high, with lots of “what if” discussions
- any roadblocks have been overcome very quickly, and we have both contributed ideas that have made for a better solution
- the unit test coverage and quality seems better than usual
- the frequency of check-ins is higher than usual
- the knowledge shared for both the business knowledge and unfamiliar code has been excellent
- coffee/tea breaks have been more regular! However, they also seem to involve more discussion around the code being developed.
On the down side, the frequency of pleasant distractions (eg, checking email, RSS feeds, news sites, share prices…) has been much lower… though I’m sure has improved our productivity!
In the past I have also noticed that the number of defects raised from pair-programmed code has been significantly lower. Let’s see whether the same will apply to this code…