Now you may be thinking that why its called as "Waterfall". Simply because the progress is seen as flowing steadily downwards. In this model, each step must be completed before moving on to the next, and all steps in the process must be completed before delivering the product to the customer.
In this method of software developing, the projects breaks the process into discrete stages like...
1. Requirements Gathering : During this phase all the information is gathered from the customer i.e. whats exactly the needs of the customer. It simply means that to gather information how the product will behave.
2. Design : In this step the user interface is designed, i.e. whats the look and feel of the developed product.
3. Coding : This step is performed by the development team to develop the product as per the requirements specification.
4. Testing : This is the final step of the model where all the testing is performed to see if the product is working as per the actual product requirement.
The first and foremost advantage of this model is its discipline in product development, every phase has its defined start and end point. Now you can see here in this model the emphasis is given on requirements gathering and design before diving into to write actual code to minimize the effect of rework. Therefore if there is any fault in the software it will be detected at the initial phases and will be corrected then and there. Its very simple to use as every one knows where the stage starts and where it ends. In this model emphasis is given on paperwork, so that any new joinees in the team have everything ready to catch up with th other team members.
There are many disadvantages to this model as well. The most prominent one is that at the start of the product customer don't really know what they exactly want. So given the uncertain nature of the customer needs there will be a lot of modifications to the actual requirements which increases the amount of rework drastically thus increasing the cost of the product. The customer did not have working prototype in front of them so they are not very sure how the product will look like after its build. This model takes one stage at a time that means during requirement gathering developers and testers will be itting idle and not doing anything, same goes with other steps as well. In reality this is not exactly how the software firm work.
So, one can say this model is useful for the products where customer exactly knows the total functionality of the product at the start of the project i.e. might be for a small scale products.
Please Like and Share the Blog, if you find it interesting and helpful.