Archive for the ‘Agile’ Category
Paired Programming is an Agile software development technique where two programmers work together on a workstation. One, the driver, writes code while the other, the observer, pointer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently. The goal of this technique is lower defects, improve quality and develop faster.
An analogy to this technique is the people who fly commercial aircraft; the Captain, also referred to as the pilot and the first officer, also referred to as the copilot. Both the pilot and first officer are fully qualified to fly the plane at all times, depending on the length of the flight both of the crew will alternate command. If a flight is going from place A to place B to place C, the captain will fly the first leg and the first officer will fly the second leg. The pilot who is not flying is still busy, working the communication radios and navigational computers, etc.
Similarly, when the driver is working on the code, the other programmer observes, guides, thinks about the how to test and identifies any potential defects, After a while the roles are reversed and the development continues. This collaboration brings in the best of the ideas from both the members and typically helps in writing better quality code. Although that is the expectation, the expected output of this technique depends on how well both the programmers are skilled and how efficiently they communicate with each other. No communication would result in less productivity and which defeats the purpose of this technique. Forming new pairs frequently through out the development cycle with help is knowledge sharing in the team. This technique is suggested to be employed by a pair of experienced programmers who are at a similar skill level.
1. Paired Programming