Abstract
This study concentrates on pair programming, which is a practice of
Extreme Programming. Pair programming is a programming technique in which two
programmers use one computer to work together on the same task. Special focus
is placed on examining the impact of pair programming on software quality,
especially on maintainability and reliability.
The purpose of this study was twofold: to collect and analyze the current
knowledge on pair programming, and to study the selected aspect related to
pair programming empirically. First, a literature survey was performed to
summarize the findings of the existing empirical studies on pair programming
in order to evaluate the current state of knowledge. Based on the literature
survey, it was concluded that pair programming raises the development costs of
a software development project because of increased effort expenditure.
However, there were initial findings indicating, that these additional costs
would be compensated in later phases of the software project in the form of
improved quality.
The second part of the study consisted of an empirical evaluation of pair
programming through four case studies. Its purpose was twofold: the first goal
was to present empirical metrics related to the practical application of pair
programming, and the second goal was to investigate the impact of pair
programming on software quality characteristics maintainability and
reliability. Based on the empirical findings, it was concluded that pair
programming does not seem to provide as extensive quality benefits as
suggested in the literature, and on the other hand, does not result in
consistently superior productivity when compared to solo programming. Thus,
the results indicated that pair programming is not as cost-beneficial as
previously suggested in the literature.
Original language | English |
---|---|
Qualification | Master Degree |
Awarding Institution |
|
Place of Publication | Oulu |
Publisher | |
Publication status | Published - 2004 |
MoE publication type | G2 Master's thesis, polytechnic Master's thesis |
Keywords
- Agile software development
- extreme programming
- maintainability
- reliability
- empirical software engineering