The North Carolina State Laboratory for Collaborative System Development
In general, facility changes do not need to be made to student laboratories to enable pair programming. At the bare minimum, the two pair programmers need to be able to sit comfortably side-by-side with a fairly large (17 inch minimum) display between them. The driver sits square in front of the keyboard and mouse. The navigator must have a clear view of the display. When the driver and navigator switch roles, it should simply mean that the keyboard and mouse are slid from one person to the other. A danger signal is when the two are tempted to get up and swap chairs when they switch roles. If this is the case, then the navigator probably does not have a decent viewing/contributing position. These basic layout specifications can probably be accomplished in most workplaces without any additional expenditure as long as there are straight tables available. We have found that two programmers can comfortably sit side by side at a 6-foot by 3 foot table. Many report that convex tables (with an outer curve) work very well because the programmers do not need to worry about bumping chairs.
When designing new facilities, enhancements to this basic arrangement can be made to assist with collaboration and pair programming. A new laboratory was constructed at North Carolina State University (see picture on top below) to support the use of collaborative teaming techniques, including pair programming, in the Software Engineering course. The layout of the laboratory and the layout of the pair programming stations were designed based upon careful study of collaboration/pair programming arrangements at several industrial locations.
In team activities effective communication, both within a pair and with other pairs, is paramount. Without much effort, programmers need to see each other, ask each other questions and make decisions on things such as integration issues, lest these questions/issues are not discussed adequately. Programmers also benefit from "accidentally" overhearing other conversations to which they can have vital contributions. RoleModel Software, located in Holly Springs, North Carolina, has created the eXtreme Programming Software Studio. Their workstation layout supports both intra- and inter-pair communication. Their tables are arranged into pods, as shown in the figure on the bottom below. One pair sits at each of these six tables. The pair can certainly communicate. However, with this layout, pairs can very easily communicate and "overhear" what is going on with the pairs to either side or across from them. They can also interact with the other pairs fairly easily. The 30-foot by 30 foot NCSU laboratory has two such pods in the lab; each pod seats 6 pairs or 12 students. Additionally, four individual pair workstation are in the corners of the lab. In total, the lab holds 32 students.
Many pair programmers prefer for each member of a pair to have their own display, their own keyboard, and their own mouse all attached to one computer. This can easily be accomplished by utilizing the USB port and a dual video card; or, alternately, keyboard and mouse switches and two video cards. Those who have this kind of set-up believe that each member is more alert and engaged and that control can more easily pass between the driver and the navigator. The navigator can very easily and momentarily take control. Each of the pairing workstations in the NCSU lab is equipped with an IBM Intellistation, two keyboards, and two mice.