ABSTRACT

Executive summary: The term “pair programming” refers to having software coded by a two-person team instead of a single programmer. One programmer codes while the other “navigates” or watches each line and suggests changes as needed. The roles switch back and forth. Pair programming is one of the Agile family of methods, although it is only used by about 15% of Agile projects. Pair programming is of course very expensive and the results are ambiguous. The studies of pair programming are woefully bad, comparing only unaided teams against unaided individuals. No study to date has even considered the impact of static analysis or inspections. Pair programming only exists because the software industry does not measure well and does not know how to achieve good software quality. Individual programmers using static analysis or inspections or both are more cost-effective and have quality equal to or superior to pairs.