The Performance of Agile Methods: Comparison to Traditional Development Methods
Author:F. Davis Cardwell
The purpose of this research study is to perform a comparison and contrast analysis on three published longitudinal case studies to determine if there are significant and measurable differences in performance between software development projects using agile methods and projects using traditional methods. The research question is explored using four criteria: differences in development costs, schedule performance, quality, and stakeholder satisfaction. Findings from the studies indicate that for the three case studies analyzed, agile methods performed better than traditional methods in all four criteria. Despite these findings, there is insufficient evidence to conclude that agile methods are universally superior to traditional methods; additional research is needed to determine the edges of agile utility.
Computers and digitally controlled systems are a pervasive part of life in the early 21st century. From our alarm clocks to our power plants, every aspect of modern life is touched by computer systems. Generally, computer systems are complex constructs of hardware, software, and networks; hardware transforms data into useful information, software controls and directs the hardware and provides interfaces between systems, and networks provide input of data and output of information for the system. The primary role of software is to translate needs or requests into instructions that, when executed on the hardware, produce a result that satisfies the original need or request. (Burd, 2010, pp. 44 – 45)
Software is created to solve specific problems through the use of various software development methods. Many different approaches to developing software can be used, based on different Software Development Life Cycles [SDLCs]. Some approaches have been used since the advent of computer programming, while others are new and unique approaches to building systems that have emerged in response to development needs not satisfied by earlier methods. Generally, SDLCs are classified on a continuum according to whether they are more predictive or adaptive; predictive approaches assume that a development plan can be created in advance of the actual development, and that the new software can be developed by following this plan. Adaptive approaches assume that a development plan created in advance of the actual development is of limited usefulness, because the exact development requirements are not yet known. The predictive approaches are more traditional and were developed from the 1970s to the 1990s. Many of the newer, adaptive approaches were developed during the 1990s and into the 21st century. (Satzinger, Jackson, & Burd, 2010, p. 39)
In February 2001, seventeen people dissatisfied with traditional software development approaches met at Snowbird ski resort in Utah; their goal, in addition to spending some time on the slopes, was to find a more effective way for developing software. The unanticipated outcome of this meeting was the “agile manifesto,” a new ideal for software development as opposed to traditional “heavyweight” document-driven processes. (Beck, Beedle, Bennekum, Cockburn, Cunningham, Fowler, . . . Thomas, 2001.)
The goal of agile development is to satisfy the customer by “early and continuous delivery of valuable software.” (Beck, et al., 2001) Additionally, a goal of agile development is to introduce complaisance into the development process; a flexible process enables customers to change or add requirements late in the development cycle. (Pfleeger & Atlee, 2010, p. 59)
The four tenets and 12 underlying principles forming the foundation of agile development are not new. (Abbas, Gravell, & Wills, 2008) However, integrating these principles into the various agile software development methods has shown that practical agile development, with its “agile thinking” focus on adaptability, iterative and incremental development, and orientation to people, is an effective tool for managing an essentially unpredictable activity, i.e., software development.
Download the full Paper, The Performance of Agile Methods: Comparison to Traditional Development Methods (PDF) to continue reading.