Investigating pair-programming in a 2nd-year software development and design computer science course
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Two controlled experiments concerning the comparison of pair programming to peer review
Journal of Systems and Software
Investigating the extreme programming system---An empirical study
Empirical Software Engineering
Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise
IEEE Transactions on Software Engineering
Field Experiences with eXtreme Programming: Developing an Emergency Response System
Journal of Management Information Systems
Distributed side-by-side programming
CHASE '09 Proceedings of the 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering
A preliminary study on the impact of a pair design phase on pair programming and solo programming
Information and Software Technology
A repository of agile method fragments
ICSP'10 Proceedings of the 2010 international conference on New modeling concepts for today's software processes: software process
An empirical study on design quality improvement from best-practice inspection and pair programming
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
A decentralized and flexible tool supporting extreme programming software development
CRIWG'06 Proceedings of the 12th international conference on Groupware: design, implementation, and use
Evaluating tools that support pair programming in a distributed engineering environment
EASE'10 Proceedings of the 14th international conference on Evaluation and Assessment in Software Engineering
Hi-index | 0.00 |
We use a combination of metrics to understand, model, and evaluate the impact of Pair Programming on software development. Pair Programming is a core technique in the hot process paradigm of Extreme Programming. At the expense of increased personnel cost, Pair Programming aims at increasing both the team productivity and the code quality as comparedto conventional development. In order to evaluate Pair Programming, we use metrics from three different categories: process metrics such as the pair speed advantage of Pair Programming; product metrics such as the module breakdown structure of the software; andproject context metrics such as the market pressure. The pair speed advantage is a metric tailored to Pair Programming and measures how much faster a pair of programmers completes programming tasks as compared to a single developer. We integrate the various metrics using an economic model for the business value of a development project. The model is based on the standard concept of net present value. If the market pressure is strong, the faster time to market of Pair Programming can balance the increased personnel cost. For a realistic sample project, we analyze the complex interplay between the various metrics integrated in our model. We study for which combinations of the market pressure and pair speed advantage the value of the Pair Programming project exceeds the value of the corresponding conventional project. When time to market is the decisive factor and programmer pairs are much faster than single developers, Pair Programming can increase the value of a project, but there also are realisticscenarios where the opposite is true. Such results clearly show that we must consider metrics from different categories in combination to assess the cost-benefit relation of Pair Programming.