The Traditional Waterfall Approach

Agile Methodologies

Conclusion- Choosing the Right Approach for the Task


Agile Methodologies

Now that I have documented the Waterfall method of systems analysis and design, and shown some of its benefits and shortcomings, I will move into Agile methodologies. The following video, labeled Figure 2, shows an example of two teams, one which uses the Waterfall method, and the other which uses Agile methods to get the job done. It provides an excellent example of some of the many benefits of Agile methodologies.

Figure 2:

(Spagnuolo, 2008)

One of the biggest complaints of the Waterfall methodology is a lack of communication with the customer beyond the introductory stages. As a result, a systems analyst is unaware of whether or not a project is taking a divergent path from what the user really wants until the final Maintenance stage. This manifests as an inability to respond to changing user requirements (Maruping, Venkatesh, Agarwal, 2009). As shown here, this can lead to very expensive fixes.

When it comes to the fast-paced world of software development, user requirements change rapidly. These changes come about as a result of constantly evolving business needs. As the market environment becomes increasingly more competitive, the speed of changes to user requirements continues to increase (Maruping, et al, 2009).

It's no wonder that systems analysts and companies are seeking the Holy Grail of systems development, as systems development projects have an estimated failure rate approaching as high as 50% (Siau, 2007). Many proponents of the Agile methodologies suggest that adherence to the Agile Manifesto improves the entire systems development process (Siau, 2007). The Agile Manifesto is available at The Principles Behind the Agile Manifesto further expands on the basic premises. The Manifesto's History further details the creation and principles of the movement. The values held by the Agile Manifesto are as follows:

Various solutions have been proposed to fix the problems inherent with the Waterfall approach, including raising programmer productivity, process management approaches, and treating the end users as equals to the designers during the process (Siau, 2007). Of the processes developed, just over ten of them are officially classified as Agile (Siau, 2007). Agile methodologies make use of an iterative approach to developing software, and the desired effect is to produce better quality software in a shorter time frame (Kee, 2006).

While many methodologies have been classified as Agile methodologies, I will be covering three of the more popular methods in this paper. I will first detail Extreme Programming, the most popular agile method. I will then discuss Scrum, and finally Test-Driven Development. This subset of Agile methodologies should provide a sharp look into into Agile's basic premises, and serve as a good basis of comparison to the Waterfall approach to systems development.