Pair programmers often make lists, or at least the pairs I studied did.
Mostly these lists were produced as an aide memoire, consistent with Adelson and Soloway’s (1988) finding that experienced software engineers tend to work in a roughly hierarchical manner, taking notes if something comes to their attention which is not at the current level of detail. They were produced in mutual view and both partners often contributed, either at the time the list was produced or when additional items needed adding later. The lists were created in a programmer’s personal ‘Day Book’, on a separate sheet of paper or noted on Post-It notes and stuck on to the screen.
When asked in informal interviews, pairs claimed that their lists were created for one of three main reasons:
- As a checklist for the pair;
- For personal assurance that all the necessary sub-tasks are complete before a piece of work is deemed finished;
- For another pair who might later work on the same or a similar task.
All of these sound more than reasonable, however analysing the lists produced and the way they were subsequently used tells quite another story.
First, the degree of informality of the lists would make it difficult for them to be deciphered by anyone other than their creators. Second, the lists produced were very rarely referred back to and ‘checked off’ in any of the session that were observed. Third, lists were never transferred from one pair to another, even in organisations where daily pair swapping was practiced.
In fact, it seems that the value of lists for pair programmers might lie in their very creation rather than their persistance. That is, simply writing a list is enough of a memory jog, without ever referring back to it.