With the advent of shorter time to market of software products there an increasing requirement for techniques and methods to improve the productivity levels in software development together with a requirement for increased flexibility and the introduction of late changes. This in turn has lead to the introduction of a set of techniques known as Agile methods which include one methodology known as eXtreme Programming. This is a collection of values, principles, and practices. Since these methods are becoming more common in industry, is has become more important to introduce these ideas in the undergraduate curriculum. This case study analysed whether or not it is possible to teach eXtreme Programming at a university by means of a course that presents a mixture of theory and practice within eXtreme programming. In this context, a case study was carried out to determine which of the practices of eXtreme Programming are more appropriate to university projects. The case study indicates that it is worth investing the effort to teach eXtreme Programming to students to enable them to apply eXtreme Programming or at least some of its practices in future business and university projects.
Table of Contents
1 Introduction
2 Background
2.1 Introduction
2.2 Students Programming Background
2.3 Evaluative Research
2.3.1 Surveys and Interviews
2.3.2 Observation
2.3.3 Tools
2.4 Case Study
2.4.1 History of Case Studies
2.4.2 Description of Case Studies
2.4.3 Qualitative versus Quantitative Methods
2.4.4 The use of Case Study in the Experiment
2.5 eXtreme Programming in a nutshell
2.5.1 An overview of eXtreme Programming
2.5.2 Applying eXtreme Programming in a Student Project Environment
2.6 Review
3 The analysis model
3.1 Introduction
3.2 Hypotheses
3.3 Survey 1
3.3.1 Introduction
3.3.2 Terms of reference for Survey 1
3.3.3 Items of Survey 1
3.3.4 Summary
3.4 The tools
3.5 The observation protocol
3.5.1 Introduction
3.5.2 Terms of the observation
3.5.3 The measurement of each observed practice
3.5.4 Summary
3.6 Survey 2
3.6.1 Introduction
3.6.2 The terms of reference of Survey 2
3.6.3 Items of Survey 2
3.6.4 Summary
3.7 The sample
3.8 Summary
4 Empirical Study
4.1 Introduction
4.2 Survey 1
4.2.1 Introduction
4.2.2 Evaluation
4.2.3 Conclusion
4.3 The Tools
4.3.1 Introduction
4.3.2 Evaluation
4.3.3 Conclusion
4.4 The observation protocol
4.4.1 Introduction
4.4.2 Evaluation
4.4.3 Conclusion
4.5 Survey 2
4.5.1 Introduction
4.5.2 Evaluation
4.5.3 Conclusion
4.6 Summary
5 Result by practices
5.1 Introduction
5.2 Sit Together
5.3 Informative Workspace
5.4 Energized Work
5.5 Pair Programming
5.6 Stories
5.7 Weekly Cycle
5.8 Slack
5.9 Ten-Minute Build
5.10 Continuous Integration
5.11 Test-First Programming
5.12 Incremental Design
5.13 Shared Code
5.14 Code & Test
5.15 Single Code Base
5.16 Negotiated Scope Contract
5.17 Final Comments
Research Objectives and Key Topics
This case study evaluates the feasibility of teaching eXtreme Programming (XP) practices within an undergraduate university curriculum. The primary research goal is to determine which specific XP practices are effectively implementable in a student project environment and to assess the success or failure of this pedagogical approach.
- Analysis of eXtreme Programming practices in student lab exercises.
- Evaluation of students' understanding and attitudes toward XP methodologies.
- Measurement of practice application through observation and software tools (CVS).
- Development of recommendations for integrating agile methods into university courses.
- Comparison of student expectations versus actual project behavior.
Excerpt from the Book
5.5 Pair Programming
Pair Programming showed the highest score regarding the level of understanding. Based on this, the students categorized it as highly applicable. However, this was followed by a nearly total absence of application which the students have not been aware of. In the end, Pair Programming is the leading practice when it comes to the question which practice to apply in future projects. What could be a reason for this result? One possible answer is that – according to Ramachandran & Shukla [71] - Pair Programming is one of the 3 most popular practices of all eXtreme Programming practices. This could play its part as well as the lack of knowledge about the details regarding the appliance of this practice. Perhaps the students thought that sitting together while coding is already Pair Programming. This issue raises more questions than can be answered with help of the data gathered in this project. However, answers to these questions may be given in future projects that place the emphasis on such distinctions.
It should be noted about Pair Programming, that much research exists on whether Pair Programming improves quality of code enough to legitimise the cost intensive practice or not. As described by Williams, Kessler, Cunningham & Jeffries [72], Pair Programming helps to produce a better software quality in less time than with the common one programmer coding method. This is supported by Cockburn & Williams [76] who showed 3 projects with fewer lines of code but with the same functionality. The fact that all 3 projects needed fewer lines of code leads to the conclusion that Pair Programming results in a much more sophisticated design. Furthermore Williams & Upchurch [73], Nagappan, Williams, Ferzli, Wiebe, Yang, Miller & Balik [78] and Williams [75] describe that Pair Programming can be supportive in a students’ course as well.
Summary of Chapters
1 Introduction: Provides an overview of the case study, outlining the research objective to investigate the teaching of eXtreme Programming in undergraduate curricula.
2 Background: Establishes the theoretical foundation, covering evaluative research, case study methodology, and a high-level overview of eXtreme Programming practices.
3 The analysis model: Defines the research methodology, including the timeline of the student project, hypothesis formulation, and the tools used for data collection.
4 Empirical Study: Presents the primary research data collected through surveys, observation protocols, and technical log analysis, interpreting the results against established hypotheses.
5 Result by practices: Concludes on the individual XP practices based on the gathered evidence, providing scientific comparison and recommendations for future academic implementations.
Keywords
eXtreme Programming, Agile Methods, Student Environment, Case Study, Evaluative Research, Pair Programming, Software Engineering Education, Continuous Integration, Project Management, Software Development, Empirical Analysis, Learning Success, Pedagogical Methods, CVS, Agile Practices.
Frequently Asked Questions
What is the core focus of this academic paper?
The paper explores whether eXtreme Programming (XP) methodologies, commonly used in industrial settings, can be successfully taught and applied by students in a university software engineering project.
What are the primary thematic areas covered?
The study covers the integration of agile techniques, the assessment of students' technical and soft skills, the methodology of evaluative research in an academic setting, and the comparative analysis of student expectations versus real-world project application.
What is the main research question?
The research asks if and how eXtreme Programming can be taught effectively in an undergraduate curriculum, specifically investigating which of the 15 selected practices are realizable in a simulated university project environment.
Which scientific methods are utilized?
The author employs a case study approach, utilizing triangulation of data sources: two student surveys (pre- and post-project), direct observations during lab sessions, and analysis of archival records from programming tools like CVS.
What is addressed in the main part of the thesis?
The main body details the analytical model, the empirical execution of the student project, the evaluation of data collected from surveys and tools, and a practice-by-practice analysis of how students engaged with the XP framework.
Which keywords best characterize this work?
Key terms include eXtreme Programming, case study, software engineering education, agile methods, and student project evaluation.
How does the author evaluate the "Pair Programming" practice?
The author observes that while students highly understood and valued Pair Programming, the actual implementation was poor, suggesting a potential gap between theoretical knowledge and practical execution.
What is the author's conclusion regarding "Negotiated Scope Contract"?
The author identifies this practice as a "total failure" in the university context, noting that students struggled to understand its applicability and failed to implement it correctly during the project.
Does the author consider the university environment a constraint?
Yes, the author highlights that the university setting—compared to industrial environments—creates specific challenges, such as the need to adapt practices like "Continuous Integration" and "Code & Test" due to technical and curricular constraints.
- Quote paper
- Christian H. Becker (Author), 2010, Using eXtreme Programming in a Student Environment, Munich, GRIN Verlag, https://www.hausarbeiten.de/document/152736