The Traditional Waterfall Approach

Agile Methodologies

Conclusion- Choosing the Right Approach for the Task


The Traditional Waterfall Approach

The Waterfall approach to systems analysis and design wass the first established modern approach to building a system. This method was originally defined by Winston W. Royce in 1970, ("The Waterfall Development Methodology", 2006). It quickly gained support from managers because everything flows logically from the beginning of a project through the end, (Jonasson, 2008). Sources differ when it comes to the specific steps in the Waterfall process (Jonasson, 2008), and I will detail some of these differences in the next paragraph. However, the basic underlying logic and steps present themselves in each interpretation.

Figure 1: Waterfall method

Waterfall Method
("The Waterfall Development Methodology", 2006)

The original Waterfall method, as developed by Royce, is featured in Figure 1. The steps include Requirements Determination, Design, Implementation, Verification, and Maintenance. Other models change the Requirements phase into the Idea phase (Jonasson, 2008), or break the Requirements phase out into Planning and Analysis (Hoffer, George, Valacich, 2008). Furthermore, some models further break the Design phase out into Logical and Physical Design subphases (Hoffer, et al, 2008). As previously mentioned, however, the basic underlying principles remain the same.

The Waterfall method makes the assumption that all requirements can be gathered up front during the Requirements phase (Kee, 2006). Communication with the user is front-loaded into this phase, as the Project Manager does his or her best to get a detailed understanding of the user's requirements. Once this stage is complete, the process runs "downhill" (Hoffer, et al, 2008).

The Design phase is best described by breaking it up into Logical Design and Physical Design subphases. During the Logical Design phase, the system's analysts makes use of the information collected in the Requirements phase to design the system independently of any hardware or software system (Hoffer, et al, 2008). Once the higher-level Logical Design is complete, the systems analyst then begins transforming it into a Physical Design dependent on the specifications of specific hardware and software technologies ("Software Development Lifecycle", n.d.)

The Implementation phase is when all of the actual code is written ("SDLC Phases", n.d.). This phase belongs to the programmers in the Waterfall method, as they take the project requirements and specifications, and code the applications.

The Verification phase was originally called for by Royce to ensure that the project is meeting customer expectations. However, under real-world analysis and design, this stage is often ignored. The project is rolled out to the customer, and the Maintenance phase begins.

During the Maintenance phase, the customer is using the developed application. As problems are found due to improper requirements determination or other mistakes in the design process, or due to changes in the users' requirements, changes are made to the system during this phase. ("SDLC Phases", n.d.).

The Waterfall method does have certain advantages, including:

Unfortunately, the Waterfall method carries with it quite a few disadvantages, such as:

Due to these and similar problems, systems analysts began looking for alternative methods of designing systems. In the following sections, I will go over select methods that have been developed. I will concentrate on methodologies that have been classified as Agile. In this paper, I will concentrate on Extreme Programming, Scrum, and Test-Driven Development.