Content area
Abstract
Peer review is one of the essential activities in software quality assurance since peer reviews can detect and remove defects in the early stages of the software development life cycle. Removing defects early reduces the cost of defect rework later. Selecting a peer review methodology (e.g., inspection, walkthrough, checklist-based, defect-based, function-based, perspective-based, usage-based, value-based) to execute in a software project is difficult. The developers have to understand the commonalities and differences of each methodology. They need to know the relative strengths and weaknesses of these practices. However, very few studies have compared the commonalities and differences of each peer review methodology and none of the studies have shown an empirical comparison between pair programming and software inspection.
Software inspection and pair programming are effective verification techniques. Software inspection is one of the best practices in traditional software development while pair programming is one of the best practices in agile development. Numerous studies have shown the success of software inspection in large-scale software development over the past three decades. Although Pair Programming (PP) is a newer approach and less structured, it has had a strong impact on the success of agile software development projects over the past five years.
This dissertation aims to identify the critical factors that impact the cost-effectiveness of either pair programming/development or inspection and provide the decision framework to help the developers select the most effective technique under given conditions. To compare both techniques, four classroom experiments and one industry experiment were conducted in Thailand and US. The development effort and effect of quality were investigated with some additional calendar time comparisons.