Pair Programming Rules
*Adapted from a text by Robert NoonanPair programming is often described as [Williams 2000]:
a practice in which two programmers work side-by-side at one computer, continuously collaborating on the same design, algorithm, code, or test. This method has been demonstrated to improve productivity and the quality of software products.
Students working in pairs are required to abide by the rules given below.
-
Share. "In pair programming, two programmers are assigned to jointly produce one artifact (design, algorithm, code, among others). ... One person is typing or writing [driving], the other is continually reviewing the work [navigating]. ... Both partners own everything." Not only is this an effective learning technique, it is also more productive than splitting a task in two, working on each half separately, and then combining the two.
-
Play fair. It is important to take turns typing or writing [driving], so that the other person gets a chance to review [navigate].
-
Clean up. Defects belong to the pair. Having two sets of eye balls is much better than one.
-
Hold hands and stay together. All programming should be done together; do not create things done alone. The literature of pair programming shows that most defects are traceable to things done singly. It also inhibits learning.
-
Say you're sorry. "Ego-less programming ... is essential for effective pair programming." Do not insist on having things your way or else. Do not get defensive about criticism. Work things out as a pair.
Laurie A. Williams and Robert R. Kessler.
All I really need to know about pair programming I learned in kindergarten.
CACM, 43, 5 (May 2000), pp. 109-114.
Class-Specific Rules
- Pairs should turn in only 1 copy of an assignment or lab with both names on the assignment.
- Pairs, once formed, must be stable; your only other option is to revert to working alone for the semester.
- Pairs are required to work together; any form of
splitting up the work is a violation of pair programming.
Violations of Pair Programming
- Taking turns doing the assignments.
- Splitting the assignment in two and each doing half.
- One person doing all (most of) the work and the other partner putting their name on it, as though the latter had contributed equally.
- One member of a pair coming to see me about an assignment without their partner.
Possible Sources of Stress to Consider
- Disparity between experience levels.
- Scheduling difficulties.
- Reliability.