Pair Programming Team
- Pair Programming Team
- a team consisting of two programmers
who sit side-by-side at a single computer and who closely collaborate to produce production software components,
whereby one programmer programs while the other programmer technically evaluates the first programmer’s
software in real time as it is developed
As illustrated in the preceding figure, Pair Programming Team is part of the following inheritance hierarchy:
- Type: Concrete
- Superclass: Engineering Team
- Subclasses:
The team-specific responsibilities of a Pair Programming Team are to:
- Design production, reuse, refactoring, and documentation
- Programming of production software including reuse, refactoring, debugging, and documentation via comments
- Unit and integration testing
- Technical evaluation (in real time) of design, programming, and testing
- Close collaboration (i.e., sitting side by side sharing the same computer
A pair programming team typically consists of two persons,
each of which plays the following roles:
A pair programming team typically performs the following tasks.
A pair programming team typically produces the following work products:
- Experience using pair programming is mixed with some research showing significant advantages
in both quality and productivity, whereas other research shows significant decreased productivity
with only marginal increased quality. Much research is limited to small university pilot studies.
A major evaluation of Canadian companies showed that pair programming was rarely used successfully
in practice, and then mostly in the form of short duration sessions primarily for the purpose of
mentoring less experienced staff.
- Pair programming is strongly promoted by the eXtreme
Programming (XP) community, which combines pair programming
with many other specific methodology choices. Care must be
taken when instantiating the OPF to produce an extreme
programming or development method so that the choices of
process components and their tailoring produce an
endeavor-specific process that is internally consistent and
also consistent with the XP philosophy.
- Pair programming emphasizes refactoring, iteration, and
test first unit testing to ensure local quality by having both
“programmers” do almost all tasks jointly so that each
immediately evaluates the work products of the other as they are produced.
- Because of the small size of pair programming teams,
there are often numerous pair programming teams on medium and large sized projects.
- It is often difficult to staff pair programming teams so
that its members can effectively perform all of the tasks
that would be performed by many specialists and several larger teams.
- The pair programming team may develop internal data
components, while the content management team may develop user-facing data components.