Pair Programming is an innovative concept of two people sitting together at a single terminal and tries to produce a solution. One person types the program tactically while other person thinks strategically. This approach will produce same functionality when compared with two different people sitting at two different terminals. Researchers reassure a high quality product with pair programming methodology.
Pair programming encourages pair-analysis and pair-design to have smooth product delivery. Pair-analysis should include development directions and strategy outlines during complete cycle. As two brains works together, there is always a better chance of yielding a good solution rather than a simple solution. Pair-design helps to outline the defect defects in a very early stage, reducing defect tunnel vision. With the partner discussing on top of other developer’s vision, programmers will have a better understanding of the requirement. After design is completed, pair team starts their implementation. One of the developers will be in driver seat and other will be strategic controller. Unit testing will be performed after pair development by having developers develops test cases together and executing the results.
“Organizations that have heavily used pair-programming have yielded superior results. The largest example is the sizable Chrysler Comprehensive Compensation system (the C3 project discussed in Ron Jeffries’ story above) launched in May 1997. After finding significant, initial development problems, Beck and Jeffries restarted this development using Extreme Programming principles, including the exclusive use of pair-programming. The payroll system pays some 10,000 monthly-paid employees and has 2,000 classes and 30,000 methods [9], went into production almost on schedule, and is operational today. In the last five months before the first production, almost the only defects that making it through unit and functional testing were written by someone programming alone. Says one pair-programmer in an anonymous survey [10] of professional pair programmers, “I strongly feel pair-programming is the primary reason our team has been successful. It has given us a very high level of code quality (almost to the point of zero defects). The only code we have ever had errors in was code that wasn’t pair programmed . . . we should really question a situation where it isn’t utilized.”
Laurie Williams, Robert R.Kessler, Ward and Ron performed an experiment in class producing quantitative results supporting the pair-programming results in industry. The students completed four assignments over a period of six weeks. Thirteen individuals and fourteen collaborative pairs completed each assignment. The pairs always passed more of the automated post-development test cases run by an impartial teaching assistant (see Table 1 below). (The difference in quality levels is statistically significant to p < .01.) Their results were also more consistent, while the individuals varied more about the mean.
Individuals Collaborative Teams
Individuals | Pair – Team | |
Program 1 | 73.4% | 86.4% |
Program 2 | 78.1% | 88.6% |
Program 3 | 70.4% | 87.1% |
Program 4 | 78.1% | 94.4% |
Table 1: Percentage of Test Cases Passed
Advantages of Pair Programming
Errors are identified upfront. This reduces the cost of software maintenance significantly. Design reviews are part of regular pair discussions, which helps in making the design simple and reduce of re-factoring. Pair-programming encourages cross-training between developers.
—
Pavan Kumar Gorakavi