Results 1 - 10
of
31
Case Study: Extreme Programming in a University Environment
- In Proceedings of the 23rd International Conference on Software Engineering
, 2001
"... Extreme Programming (XP) is a new and controversial software process for small teams. A practical training course at the university of Karlsruhe led to the following observations about the key practices of XP. First, it is unclear how to reap the potential benefits of pair programming, although pair ..."
Abstract
-
Cited by 37 (4 self)
- Add to MetaCart
Extreme Programming (XP) is a new and controversial software process for small teams. A practical training course at the university of Karlsruhe led to the following observations about the key practices of XP. First, it is unclear how to reap the potential benefits of pair programming, although pair programming produces high quality code. Second, designing in small increments appears problematic but ensures rapid feedback about the code. Third, while automated testing is helpful, writing test cases before coding is a challenge. And last, it is difficult to implement XP without coaching. This paper also provides some guidelines for those starting out with XP.
Program quality with pair programming in CS1
- In ITiCSE '04: Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
, 2004
"... Prior research on pair programming has found that compared to students who work alone, students who pair have shown increased confidence in their work, greater success in CS1, and greater retention in computer-related majors. In these earlier studies, pairing and solo students were not given the sam ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
Prior research on pair programming has found that compared to students who work alone, students who pair have shown increased confidence in their work, greater success in CS1, and greater retention in computer-related majors. In these earlier studies, pairing and solo students were not given the same programming assignments. This paper reports on a study in which this factor was controlled by giving the same programming assignments to pairing and solo students. We found that pairing students were more likely to turn in working programs, and these programs correctly implemented more required features. Our findings were mixed when we looked at some standard complexity measures of programs. An unexpected but significant finding was that pairing students were more likely to submit solutions to their programming assignments.
Are Reviews an Alternative to Pair Programming?
- JOURNAL ON EMPIRICAL SOFTWARE ENGINEERING
, 2003
"... 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 a faster development cycle and code with higher quality. However, the nearly doubled personal co ..."
Abstract
-
Cited by 11 (3 self)
- Add to MetaCart
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 a faster development cycle and code with higher quality. However, the nearly doubled personal cost when compared to single developers seems to outweigh these advantages. Instead of showing the superiority of pair programming, we seek for an alternative. Can a single developer be assisted by an already known technique with which he produces 80% of the quality of pairs with only 20% of the cost? The answer with some restrictions is: yes, he can. Reviews are a reasonable candidate with respect to code quality and cost.
Pair learning: With an eye toward future success
- In Extreme Programming and Agile Methods - XP/Agile Universe 2003, number 2753 in LNCS
, 2003
"... Abstract. Pair programming is a practice in which two programmers work collaboratively at one computer on the same design, algorithm, or code. Prior research indicates that pair programmers produce higher quality code in essentially half the time taken by solo programmers. Pair programming is becomi ..."
Abstract
-
Cited by 10 (2 self)
- Add to MetaCart
Abstract. Pair programming is a practice in which two programmers work collaboratively at one computer on the same design, algorithm, or code. Prior research indicates that pair programmers produce higher quality code in essentially half the time taken by solo programmers. Pair programming is becoming increasingly popular in industry and in university curricula. An experiment was run at North Carolina State University over a period of one and a half years to assess the efficacy of pair programming as an alternative educational technique in an introductory programming course. We found that the retention rate of the students in the introductory programming courses is equal to or better than that of the students in the solo programming courses. Most students show a positive attitude towards collaborative programming, and students in paired classes continue to be successful in subsequent programming classes that require solo programming. Pair programming also leads to a reduced workload for the course staff in terms of grading, questions answered and teaching effort. 1.
extreme programming at universities: an educational perspective
- In Proceedings of the 25th International Conference on Software Engineering
, 2003
"... To address the problems of traditional software development, recent years have shown the introduction of more light-weight or "agile " development processes (eXtreme Programming being the most prominent one). These processes are intended to support early and quick production of working code by struc ..."
Abstract
-
Cited by 9 (0 self)
- Add to MetaCart
To address the problems of traditional software development, recent years have shown the introduction of more light-weight or "agile " development processes (eXtreme Programming being the most prominent one). These processes are intended to support early and quick production of working code by structuring the development into small release cycles and focus on continual interaction between developers and customers. As such software development processes become more popular, there is a growing demand from industry to introduce agile development practices in tertiary education. This is not a straighOCorward task as the corresponding practices may run counter to educational goals or may not be adjusted easily to a learning environment. In this paper, we discuss some of these issues and reflect on the problems of teaching agile processes in tertiary education. 1.
Pair Programming in an Introductory Computer Science Course: Initial Results and Recommendations
- In Proceedings of the AAAI Workshop on Approximation and Abstraction of Computational Theories (mimeographed
, 2002
"... Prior research indicates that pair programming, whereby two programmers work collaboratively on the same design, algorithm, code, or test, produces higher quality code in essentially half the time taken by solo programmers. An experiment was run at North Carolina to assess the efficacy of pair progr ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
Prior research indicates that pair programming, whereby two programmers work collaboratively on the same design, algorithm, code, or test, produces higher quality code in essentially half the time taken by solo programmers. An experiment was run at North Carolina to assess the efficacy of pair programming in the introductory CS1 course. Results indicate that relative to students who program individually, pair programmers are more self-sufficient, perform better on projects, and are more likely to complete the class with a C or better Keywords pair programming, collaborative learning, Computer Science education, Extreme Programming, XP 1.
Less Extreme Programming
, 2004
"... Industrial practice in software engineering has developed in recent years from rigid heavyweight document-based development techniques, such as the Rational Unified Process, to incorporate more agile, iterative, communication-centric approaches such as Extreme Programming. This shift has created a n ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
Industrial practice in software engineering has developed in recent years from rigid heavyweight document-based development techniques, such as the Rational Unified Process, to incorporate more agile, iterative, communication-centric approaches such as Extreme Programming. This shift has created a need for a similar shift in software engineering education. We report our experience of incorporating an Extreme Programming option into an existing document-centric software project course. While students taking the option were generally positive about Extreme Programming, the projects' external clients had a more mixed experience.
Paired Programming and Personality Traits
- Third International Conference on eXtreme Programming and Agile Processes in Software Engineering
, 2002
"... Paired programming is an essential element of extreme programming -- a methodology comprised of applying best practices to software development. Not all developers are suited for paired development however, and care should be taken when building a team for extreme programming. The team members shoul ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Paired programming is an essential element of extreme programming -- a methodology comprised of applying best practices to software development. Not all developers are suited for paired development however, and care should be taken when building a team for extreme programming. The team members should be selected with personality traits that are beneficial to paired programming. These personality traits can be determined through various interview techniques and the corresponding behavioral responses of the candidates.
Analyzing the cost and benefit of pair programming
- In International Symposium on Software Metrics (Metrics
, 2003
"... Abstract. 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 increasin ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
Abstract. 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 compared to 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; and project 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 realistic scenarios where the opposite is true. Such results clearly show that we must consider metrics from different categories in combination to assess the cost-benefit
XP as a Framework for Practical Software Engineering Experiments
- In Proceedings of the Agile Processes in Software Engineering (XP2002
, 2002
"... We discuss how Extreme Programming (XP) can be used as the base software development method to perform practical experiments in software engineering. We show how the main features of XP can help us to minimize some of the problems and difficulties that appear when trying to perform such experiments ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
We discuss how Extreme Programming (XP) can be used as the base software development method to perform practical experiments in software engineering. We show how the main features of XP can help us to minimize some of the problems and difficulties that appear when trying to perform such experiments in a university environment. We also discuss the execution and experiences from one experiment studying a new methodology: the Stepwise Feature

