Please use this identifier to cite or link to this item: http://hdl.handle.net/10397/85284
Title: Pair programming for software development and for the management of inexperienced programmers
Authors: Lui, Kim-man
Degree: Ph.D.
Issue Date: 2006
Abstract: As Agile Software Development (ASD) has grown in influence in both academia and industry, Pair Programming, which is an important theme in ASD has become a controversial focus of interest. Pair Programming is a form of team collaboration. It is concerned with two programmers working side by side on design, coding and testing. Many researchers still remain skeptical of claims for the productivity of Pair Programming. This thesis aims to advance the use of findings from empirical software engineering on Pair Programming and to find ways, based on the findings, to help inexperienced programmers of small in-house software teams to increase their productivity. The fundamental problem of Pair Programming is to measure the productivity gain it has over solo programming. As the programming abilities of each developer varies widely, having programmers divided into solo and pair groups in order to measure time productivity of Pair Programming and to justify the quality of their work requires a large set of samples. Otherwise, this kind of experiment, despite its straightforwardness, may not eliminate personal factors from subjects of pairs. The variations of programming language skills among the subject pairs could unpredictably affect the experiment. Taking a different approach, this thesis intends to observe a single group of industrial programmers carrying out two sorts of task: (1) completing an algorithm-style aptitude test in pairs and individually; (2) two aptitude tests completed by subjects who alternately work in pairs and individually. The results show that algorithm design at all levels in Pair Programming is more productive. We have also designed and carried out a set of controlled experiments, called Repeat Programming, to assess the productivity of the same pairs and individuals, from novice to experienced, solving the same problem. The use of Repeat Programming enhances understanding of previous Pair Programming control experiments to explain why different conclusions seem to have been reached when the productivity of Pair Programming is evaluated. In addition to the above, this thesis proposes an application of Pair Programming based on the findings of five control experiments that can help manage inexperienced programmers in China. Rather than having all production code written by pairs in the context of extreme Programming, the proposed paradigm encourages programmers to design and implement design patterns of their own in pairs and build sub-modules through the use of patterns individually. Through our experiments, we discovered that the more time team members work alone, the more number of design patterns they have developed in pairs for reuse. With these results, we propose a model on the adoption of Pair Programming. This model can be used to manage less experienced programmers when Pair Programming are adopted. This is confirmed with case studies in software development projects managed in China.
Subjects: Hong Kong Polytechnic University -- Dissertations
Computer software -- Development
Computer programmers -- Training of
Pages: 100 leaves : ill. ; 30 cm
Appears in Collections:Thesis

Show full item record

Page views

78
Last Week
0
Last month
Citations as of Apr 14, 2024

Google ScholarTM

Check


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.