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.
|Place of Publication||Oulu|
|Publication status||Published - 2004|
|MoE publication type||G2 Master's thesis, polytechnic Master's thesis|
- Agile software development
- extreme programming
- empirical software engineering