|Title:||Pair programming for software development and for the management of inexperienced programmers|
|Subject:||Hong Kong Polytechnic University -- Dissertations|
Computer software -- Development
Computer programmers -- Training of
|Department:||Department of Computing|
|Pages:||100 leaves : ill. ; 30 cm|
|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.|
As a bona fide Library user, I declare that:
- I will abide by the rules and legal ordinances governing copyright regarding the use of the Database.
- I will use the Database for the purpose of my research or private study only and not for circulation or further reproduction or any other purpose.
- I agree to indemnify and hold the University harmless from and against any loss, damage, cost, liability or expenses arising from copyright infringement or unauthorized usage.
By downloading any item(s) listed above, you acknowledge that you have read and understood the copyright undertaking as stated above, and agree to be bound by all of its terms.
Please use this identifier to cite or link to this item: