Comparing Extreme Programming and Waterfall Projec
Comparing Extreme Programming and Waterfall Projec
net/publication/224241901
CITATIONS READS
33 4,415
2 authors:
All content following this page was uploaded by Todd Sedano on 11 June 2014.
1-1-2011
Todd Sedano
Carnegie Mellon University, [email protected]
Recommended Citation
Ji, Feng and Sedano, Todd, "Comparing Extreme Programming and Waterfall Project Results" (2011). Silicon Valley Campus. Paper
57.
http://repository.cmu.edu/silicon_valley/57
This Article is brought to you for free and open access by the Carnegie Institute of Technology at Research Showcase. It has been accepted for
inclusion in Silicon Valley Campus by an authorized administrator of Research Showcase. For more information, please contact
[email protected].
Comparing Extreme Programming and Waterfall Project Results
Abstract
Waterfall and Extreme Programming are two software project methods used for project
management. Although there are a number of opinions comparing the two methods regarding
how they should be applied, none have used project data to clearly conclude which one is
better. In this paper, we present the results of a controlled empirical study conducted at
Carnegie Mellon University in Silicon Valley to learn about the effective transition from
traditional development to agile development. We conducted a comparison research against
these two approaches. Multiple teams were assigned a project; some used Waterfall
development, others used Extreme Programming. The purpose of this research is to look at
advantages and disadvantages based upon the outcomes, generated artifacts, and metrics
produced by the teams.
1. Introduction
2. Related work
Much research has been done as to when to use an agile method and when to use a
traditional method. For example, Boehm Turner's home grounds look at several
characteristics, criticality, culture, and dynamism [6]. Our paper aims to extend these
limitations to some degree by estimating Waterfall and XP in an academic case study, which
provide a substantive ground for researchers before replicating their ideas in industry.
Basili [7] presented a framework for analyzing most of the experimental work performed
in software engineering. We learned that how to conduct a controlled experiment. Andrew
and Nachiappan [8] reported on the results of an empirical study conducted at Microsoft by
using an anonymous web-based survey. They found that one third of the study respondents
use Agile methodologies to varying degrees and most view it favorably due to improved
communication between team members, quick releases and the increased flexibility of agile
designs. Their findings that we will consider in our future work is that developers are most
worried about scaling Agile to larger projects, and coordinating agile and traditional teams.
Our work is closely related to the work by Ming Huo et al [9]. They compared the Waterfall
model with agile processes to show how agile methods achieve software quality. They also
showed how agile methods attain quality under time pressure and in an unstable requirements
environment. They presented a detailed Waterfall model showing its software quality support
processes. Other work has only illustrates one or some Agile practices such as pair
programming [10].
3. Experimental methodology
Our research was conducted primarily using Glaser's steps [11] in the constant comparison
method of analysis. Step1: Begin collecting data. We collected more than 50 teams’ detailed
data during a five year period as Table 1 shows.
Table 1. Team building the same project
2004 2005 2005 2006 2007 2008
Method Waterfall Waterfall XP XP XP XP
Language Java Java Java Java Java Ruby
Project PET1.0 PET1.0 PET1.0 PET1.1 PET1.1 PET1.2
Numbers of Teams 10 13 3 9 6 11
Step2: Look for key issues, recurrent events, or activities in the data that become categories
for focus. The approach in software design makes us categorize the data into two distinctive
software development methods, namely Waterfall and Extreme Programming.
Step3: Collect data that provides many incidents of the categories of focus with an eye to
seeing the diversity of the dimensions under the categories. According to Basili[7], we
provided some metrics to compare these two categories, Waterfall and XP.
Requirements Metrics
M1: Numbers of UI screens (ie. mockup) M2: Numbers of use cases (story cards)
M3: Pages of Software Requirements Specification (SRS) documents
M4: Pages of User Requirements Documents (URD)
Design Metric
M5: Pages of detailed design documents
Implementation Metrics
M6: Lines of code M7: Percentage of lines of comments to lines of source code
M8: Lines of test cases M9: Ratio of lines of test code to lines of program code
Step4: Write about the categories that we are exploring, attempting to describe and account
for all the incidents we have in our data while continually searching for new incidents.
Step5: Work with the data and emerging model to discover basic social processes and
relationships.
Step6: Engage in sampling, coding, and writing as the analysis focuses on the core
categories. During 2005, there were 13 teams following Waterfall and 3 teams following XP
during the same period of time. These three teams, team Absorb, GT11 and 30:1 are
interesting teams to examine as we can compare their data against the Waterfall teams
doing the exact same project.
4. Experimental results
XP teams increased their design documents with each iteration. Because the XP teams
followed Test-Driven Development, they wrote their code and had an emergent design. At the
end of each iteration, the teams were asked to update the design document to reflect important
design decisions they had made during that iteration. Therefore, the design document serves
a different purpose in XP. It is not a template or blueprint for future construction. Instead, it
can be a guide for understanding why certain decisions were made. In this regard, it is a
biography of the development, not a plan of action.
4.4. New lines of source code and comments, Percentage of comments in codes
Table 5 shows that Waterfall teams starting with Pet 1.0 produced lines of code with a
wide variance. The two XP teams starting with Pet 1.0 fell right within the middle of the
average. Because instead of producing some documents up front, the XP teams spent a longer
time coding, one would expect them to produce more lines of code. The research results also
show that XP Teams had a higher percentage of comments in source code.
Table 5. Average and Standard Deviation of new lines in code
Year 2004 2005 Absorb GT11 30:1 2006 2007 2008
Language Java Java Java Java Java Java Java Ruby
Average new lines in code 9,429 11,910 13,288 14,689 0 9,628 8,572 3,670
Standard Deviation 7,946 9,851 4,920 5,465 1,507
Lines of test codes 3378 4164 1380 3186 947 3555 2212 3,255
Ratio of test codes to 8% 13% 4% 8% 8% 16% 10% 90%
program code
4.5. Submitted lines of test codes and ratio of test code to program code
The observation of these two metrics in Table 5 shows that the amount of test code written
by the Waterfall teams equals the amount of test code written by the XP teams. Initially the
faculty thought that Test-Driven Development would increase the amount of testing
code, however, given a slow adoption rate of Test-Driven Development, programmers
resorted to what was familiar and thus produced similar results.
5. Conclusion
In this paper, we observed and presented the data from five years of 50 teams developing
the same project each year and the affects of transitioning from Waterfall to Extreme
Programming. The characteristics between these two methods were evaluated and compared.
Waterfall teams spent more time creating high ceremony documents where as Extreme
Programming teams spent more time writing code and documenting their design in their code.
Surprisingly, the amount of code and features completed were roughly the same for both
methods suggesting that on a three month project with three to four developers it doesn't
matter the method used. It is challenging to conduct this kind of analysis of the data in
hindsight. Given that this is not a toy problem, and the freedom teams have in the execution
of their projects, setting up this kind of experiment properly in advance is also challenging.
6. References
[1] Sommerville, Software engineering, 8th ed., New York: Addison-Wesley, Harlow, England, 2006.
[2] W.Royce, Managing the Development of Large Software Systems, IEEE WESTCON, Los Angeles, 1970.
[3] A. Abran and J. W. Moore, Guide to the software engineering body of knowledge: trial version (version 0.95)
IEEE Computer Society Press, Los Alamitos, CA, USA, 2001.
[4] Kent Beck and Cynthia Andres, Extreme programming eXplained: embrace change, Second Edition,
MA: Addison-Wesley, 2004.
[5] Mike Cohn, Agile estimating and planning, Prentice Hall Professional Technical Reference, Nov 11, 2005.
[6] Barry, Boehm and Richard Turner, Balancing Agility and Discipline: A Guide for the Perplexed, Addison
Wesley, August 15, 2003.
[7] Basil, V.R., Selby, R. and Hutchens, D., Experimentation in Software Engineering, IEEE Transactions on
Software Engineering (invited paper), July 1986.
[8] Andrew Begel and Nachiappan Nagappan, Usage and Perceptions of Agile Software Development in an
Industrial Context: An Exploratory Study, MiIEEE Computer Society MSR-TR-2007-09, no. (2007): 10.
[9] Ming Huo, June Verner, Muhammad Ali Babar, and Liming Zhu, How does agility ensure quality?, IEEE
Seminar Digests 2004, (2004):36.
[10] Jan Chong, Robert Plummer, Larry Leifer, Scott R. Klemmer, and George Toye. Pair Programming: When
and Why it Works, In Proceedings of Psychology of Programming Interest Group 2005 Workshop, Brighton,
UK, June 2005.
[11] Glaser, Barney G, Strauss, and Anselm L., The Discovery of Grounded Theory: Strategies for Qualitative
Research, Aldine Publishing Company, Chicago, 1967.