The Waterfall model of computer application design has been around for a long time. It has been typically favoured in the past compared with other design models – and to some extent still is today.
The Waterfall model involves exactly one iteration of the design process. Usually there is a requirements phase, a design phase, an
implementation phase, a verification phase and a maintenance phase.
During the requirements phase the actual requirements of the final system are defined. This is formed in conjunction by the person or organisation commissioning the project – basically the customer. During this stage you have to be careful with how you treat the customers input. Remember, as strange as it sounds, the customer may not actually know what they want! Now
this can sound strange, but keep it in mind. Unless suitably qualified, the customer may suggest certain implementations that are not possible, not efficient or simply won’t work. However, it is important to consider the customers input carefully so that you end up producing a system that the customer is both happy with and can use for its intended purpose.
The design phase involves designing the actual application. Usually during this stage, storyboards will be developed, the user interface will be mapped out and exactly what is in the system will be defined – as well as how the functionality in the system will work. During the design phase it is often good to consult and show the customer your designs so that their initial ideas that they expressed during the requirements phase are fully understood and that the customer sees the designs evolving in the way in which the originally intended. It is important to catch important misunderstandings at this stage – if found out a later stage they can be very detrimental to the project – and in some cases cause the whole project to fail.
The implementation phase is where the designs are put into practice. This involves the design of the multimedia elements of the system as well as the programming code for the final system. As much as possible the implementation should fully represent the original designs. With the Waterfall model, there is little room for manoeuvre and there is no redesign stage – you must stick to the original design!
The verification stage is the final development process phase which would include the testing phase. The testing may include many different types of testing including functionality and user interface testing. During this stage there may also be an evaluation stage which reports on the project and can include the input of the customer based on the product that you have developed.
The maintenance stage is a post development process phase which can continue for a very long time depending on the software. This phase involves providing routine maintenance and possibly additions to the system as necessary. It
also can include making patches for the software to rectify errors. Equally it can include patches to improve security or make improvements based on technological developments since the implementation of the original software.
Overall, the Waterfall method is very inflexible. Mistakes in the design, unless rectified at the time, become mistakes of the final system. The use of the Waterfall method can also cause unnecessary delay on at any stage, as the designers and developers are aware that once that stage has passed, it has passed – there is no going back to it. The Waterfall method is a traditional method of application development – and is still relatively popular. However, companies are now embracing alternatives such as iterative design, which, although it can be more volatile, can lead to much better results for the final application.
View Comments (2)
We learned this at college, and it's a pretty important concept if you are doing anything for real, especially in a business environment. Very informative article.
Thanks Ben :). Yes, even though new models have come along they haven't been able to kill off the good old Waterfall Model!!
I've got to admit that it is very useful for some projects. But of course it is project dependant. In a recent 6 month project I used the Iterative Model and I found that extremely useful for that project.
The best thing is to ensure that you plan each project properly and don't try to rush it to skip ahead to development. Important decisions such as which design model to use takes time and rushing it can mean a wrong choice which, in the worse case scenario, leads to project failure :(.