The drawback of pair programming is the nearly doubled personnel cost. The extra cost of pair programming originates from the strict rule of extreme programming where every line of code should be developed by a pair o...
详细信息
The drawback of pair programming is the nearly doubled personnel cost. The extra cost of pair programming originates from the strict rule of extreme programming where every line of code should be developed by a pair of developers. Is this rule not a waste of resources? Is it not possible to gain a large portion of the benefits of pair programming by only a small fraction of the meeting time of a pair programming session? We conducted a preliminary study to answer this question by splitting the pair programming process into a pair design and a pair implementation phase. The pair implementation phase is compared to a solo implementation phase, which in turn was preceeded by a pair design phase, as well. The study is preliminary as its major goal was to identify an appropriate sample size for subsequent experiments. The data from this study suggest that there is no difference in terms of development cost between a pair and a solo implementation phase if the cost for developing programs of similar level of correctness is concerned. (c) 2006 Elsevier B.V. All rights reserved.
The purpose of this study was to investigate the collaborative dialogue patterns of pair programming and their impact on programming self-efficacy and coding performance for both slow- and fast-paced students. Forty-s...
详细信息
The purpose of this study was to investigate the collaborative dialogue patterns of pair programming and their impact on programming self-efficacy and coding performance for both slow- and fast-paced students. Forty-six postgraduate students participated in the study. The students were asked to solve programming problems in pairs;those pairs' conversations were recorded when they worked on their tasks. Data analysis methods, including lag sequential analysis, cluster analysis and paired t-test, were employed, and the results showed that (1) four collaborative dialogue patterns emerged: Lecture, Guide, Question and Answer (Q&A), and Inquiry patterns;(2) Guide and Inquiry patterns significantly increased programming self-efficacy for both fast- and slow-paced students while Lecture and Q&A patterns significantly increased programming self-efficacy for slow-paced students but not for fast-paced students;(3) Guide and Inquiry patterns played a significant role in improving coding performance for slow-paced students. The study reveals a complex relationship between collaborative dialogue patterns with programming self-efficacy and coding performance, critically affecting students' pair programming quality. Further details of the findings are also *** notesWhat is already known about this topicpair programming is promising in promoting problem solving and knowledge transfer and is widely used in programming *** are different patterns observed in the pair programming *** dialogue patterns found in "expert-novice" pair programming were derived from a single programming *** this paper addsFour collaborative dialogue patterns of pair programming emerged by increasing the different tasks and experiment duration and expanding the sample size, which further verified the stability of the similar patterns in previous *** collaborative dialogue patterns showed different significant impacts on different students' progra
This research aims to answer two research questions. Is pair programming more cost-effective than solo programming? In what situations is pair programming more cost-effective than solo programming and vice versa? In o...
详细信息
This research aims to answer two research questions. Is pair programming more cost-effective than solo programming? In what situations is pair programming more cost-effective than solo programming and vice versa? In order to answer these, we adopted and extended economic models from past research. Two main conclusions can be drawn from our study. First, across the ranges of parameters studied, pair programming is more economically feasible only in a limited number of instances. Second, in order to achieve the economic benefit, pair programming either needs to have advantages in all three parameters (speed, defect, and defect removing) or have substantial advantages in two of them if on the other one pair is roughly equivalent to solo programming. We also identified specific parameter ranges for situations where a) pair programming is more economical, b) solo programming is more economical, and c) the two programming methods are equivalent. Implications of this research are discussed.
Several experiments on the effects of pair versus solo programming have been reported in the literature. We present a meta-analysis of these studies. The analysis shows a small significant positive overall effect of p...
详细信息
Several experiments on the effects of pair versus solo programming have been reported in the literature. We present a meta-analysis of these studies. The analysis shows a small significant positive overall effect of pair programming on quality, a medium significant positive overall effect on duration, and a medium significant negative overall effect on effort. However, between-study variance is significant, and there are signs of publication bias among published studies on pair programming. A more detailed examination of the evidence suggests that pair programming is faster than solo programming when programming task complexity is low and yields code solutions of higher quality when task complexity is high. The higher quality for complex tasks comes at a price of considerably greater effort, while the reduced completion time for the simpler tasks comes at a price of noticeably lower quality. We conclude that greater attention should be given to moderating factors on the effects of pair programming. (C) 2009 Elsevier B.V. All rights reserved.
Context: Geographically distributed teams have adopted agile practices as a work strategy. One of these practices is Distributed pair programming (DPP). DPP consists in two developers working remotely on the same desi...
详细信息
Context: Geographically distributed teams have adopted agile practices as a work strategy. One of these practices is Distributed pair programming (DPP). DPP consists in two developers working remotely on the same design, algorithm or code. Objective: In this paper we sought to identify and synthesize papers that describe and analyze DPP both from teaching and practice perspectives. Method: We conducted a Systematic Literature Review to search for empirical evidence in eight digital libraries. Results: Most of the 34 DPP primary studies identified explore DPP from a teaching perspective. We found that DPP requires a specific infrastructure, but the existing studies do not explore the impact of the distribution in the details. There are many tools proposed that support DPP practice, but few of them are evaluated within a software development team. Conclusion: We need more studies that explore the effects of pair programming in the context of Distributed Software Development, such as coordination and communication. Most of the studies do not empirically evaluate DPP in industry. There is also a need to propose guidelines to use DPP in industry and as a teaching strategy. (C) 2015 Elsevier B.V. All rights reserved.
Whilst knowledge transfer is one of the most widely-claimed benefits of pair programming, little is known about how knowledge transfer is achieved in this setting. This is particularly pertinent for novice-expert cons...
详细信息
Whilst knowledge transfer is one of the most widely-claimed benefits of pair programming, little is known about how knowledge transfer is achieved in this setting. This is particularly pertinent for novice-expert constellations, but knowledge transfer takes place to some degree in all constellations. We ask "what does it take to be a good "expert" and how can a "novice" best learn from a more experienced developer?". An in-depth investigation of video and audio excerpts of professional pair programming sessions using Interaction Analysis reveals: six teaching strategies, ranging from "giving direct instructions" to "subtle hints";and challenges and benefits for both partners. These strategies are instantiations of some but not all teaching methods promoted in cognitive apprenticeship;novice articulation, reflection and exploration are not seen in the data. The context of pair programming influences the strategies, challenges and benefits, in particular the roles of driver and navigator and agile prioritisation which considers business value rather than educational progression. Utilising these strategies more widely and recognizing the challenges and benefits for both partners will help developers to maximise the benefits from pairing sessions. (C) 2014 Elsevier Ltd. All rights reserved.
Active and collaborative learning has shown considerable promise for improving student outcomes and reducing group disparities. As one common form of collaborative learning, pair programming is an adapted work practic...
详细信息
Active and collaborative learning has shown considerable promise for improving student outcomes and reducing group disparities. As one common form of collaborative learning, pair programming is an adapted work practice implemented widely in higher education computing programs. In the classroom setting, it typically involves two computer science students working together on the same programming assignment. The present study examined a cluster-randomized trial of 1,198 undergraduates in 96 lab sections. Overall, pair programming had no significant effect on students' course performance;subject matter interest;plans for future coursework;or their confidence, comfort, and anxiety with computer science. These findings were consistent across various student characteristics, except that students with favorable pretest scores exhibited negative effects from pair programming.
From the first presentation of extreme programming on, pair programming has attracted a wide range of programmers to work together in front of one display. The proposed advantages of pair programming are it Faster dev...
详细信息
From the first presentation of extreme programming on, pair programming has attracted a wide range of programmers to work together in front of one display. The proposed advantages of pair programming are it Faster development cycle and code with higher quality. However, the nearly doubled personnel cost when compared to single developers seems to outweigh these advantages. Instead of showing the superiority of pair programming, we seek an alternative. Can it single developer be assisted by an already known technique with which he produces the quality of pairs with only a fraction of the cost? The answer with some restrictions is: yes, he can. Reviews are a reasonable candidate with respect to code quality and cost.
With the recent advent of agile software process methods, a number of seldom used and unorthodox practices have come to the fore-front in the field of computer programming. One such practice is that of pair programmin...
详细信息
With the recent advent of agile software process methods, a number of seldom used and unorthodox practices have come to the fore-front in the field of computer programming. One such practice is that of pair programming, which is characterized by two programmers sharing the same computer for collaborative programming purposes. The very nature of pair programming implies a psychological and social interaction between the participating programmers and thus brings into play a unique element that we do not see with the conventional individual programming model. This paper focuses on the effects that one of these psychological factors, a programmer's personality type, may have on the pair programming environment. In this study, a group of university students, 68 undergraduate students and 60 master's degree graduate students, each of whom had been personality type profiled using the Myers Briggs Type Indicator (MBTI) model, was split into three sub-groups. One group consisted of subjects who were like in MBTI type. Another group consisted of subjects who were opposite to each other in MBTI type, and the last group was comprised of subjects who were diverse - partially alike and partially opposite - in MBTI type. Through two pair programming sessions, the pairs in each group were assessed for their output, in code productivity. The result showed that the sub-group of subjects who were diverse in MBTI type exhibited higher productivity than both alike and opposite groups. In a comparison between alike and opposite groups, the productivity of the opposite group was greater than that of the alike group.
Survey respondents believed that project complexity and programmer expertise and experience affect pair programming's effectiveness. Respondents with pair-programming experience viewed pair programming more positi...
详细信息
Survey respondents believed that project complexity and programmer expertise and experience affect pair programming's effectiveness. Respondents with pair-programming experience viewed pair programming more positively. The more pair-programming experience the respondents had, the more favorably they viewed pair programming.
暂无评论