|Pair Programming - Principle and Practice|
|Written by Sue Gee|
|Wednesday, 17 February 2021|
The skill of pair programming, an increasingly popular agile software development technique, is separate from the general software development skill. Years of PP experience are neither a prerequisite nor sufficient for successful pair programming.
These findings form the overall conclusions of a paper, Two Elements of Pair Programming Skill, accepted for the 43rd International Conference on Software Engineering (ICSE 2021) which was scheduled to take place in Madrid in May but is now going to be virtual. Franz Zieris and Lutz Prechelt of the Institut fur Informatik, Freie Universitat Berlin set out to explore the elements of pair programming skill by qualitative analyses of pair programming sessions, looking for patterns of problematic behavior to conceptualize key elements of what 'good' and 'bad' pairs do differently.
To fill in some background, pair programming (PP) is where two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently.
PP is one of techniques of Extreme Programming, XP. The paper cites Kent Beck, author of "EXtreme Programming EXplained: Embrace Change" (1999) and the person who more or less invented XP, characterizing PP as:
“a dialog between two people trying to [...] program (and analyze and design and test)” which “is a subtle skill, one that you can spend the rest of your life getting good at”
Zieris and Prechelt comment that in his book:
Beck sees many benefits in this practice, such as higher code quality in less time. He does not, however, elaborate on the aspects of the “skill” underlying these benefits; he merely alludes to the importance of communication and coordination.
They also note:
Much of pair programming research appears to be built on the assumption that PP does not involve any particular skill beyond general software development experience.
Their research sets out to explore what skills are required for successful pair programming, and how they relate to general software development skills with the overall goal of understanding how ‘good’ and ‘bad’ pair programming sessions differ by analyzing PP sessions from a repository over 60 everyday PP sessions from 13 companies comprising audio, webcam, and screencast along with pre- and post-session questionnaires filled out by the developers. They took pains to choose sessions from the repository with pair members who had been pair-programing regularly for years and those new to the practice, as well as involving experienced software developers and novices.
The two elements of pair programming skill alluded to in the paper's title and which the researchers claim are independent of software development skills are:
They also identify three anti-patterns, problematic behavioral patterns that affect one or both of these elements:
The researchers conclude that prior PP experience alone does not explain beneficial and problematic behavior and note that longitudinal research with the same developers over longer time frames will be needed to understand and disentangle the influence of developers’ personal styles, their day-to-day form, and their experience with pair programming in general or with a particular partner.
Pair Programming (2007) Source: Wikipedia
or email your comment to: firstname.lastname@example.org
|Last Updated ( Wednesday, 17 February 2021 )|