A method that breaks up the process of software product development into distinct stages. It generally outlines the ideal method, as hard as it may be to follow, in which a product is developed. It also assumes one phase will spill over (pun intended) into the next one. One stage must be finished (or very close to it) before moving on to the next stage. The waterfall analogy also implies that it is difficult to return to a previous stage much like how it would be difficult/impossible to paddle up a real-life waterfall.

Here is a simple example of a development waterfall:
1. Analysis
2. Design
3. Implementation/Coding
4. Testing
5. Maintenance

Here is one for testing:
1. Test Planning
2. Test Design
3. Test Implementation
4. Test Execution
5. Execution Analysis
6. Result Documentation
7. Final Reporting

Unfortunately, as logical as this model may seem, this method of product development is very inefficient and not effective in real-world situations. Because the analysis or design is done before any coding (for software design), if the requirements of the program should change, and they almost always do, then the developers must either repeat their analysis and design and start from scratch or try to add to the existing code (remember the waterfall analogy). In either case all the work and time spent on the analysis and design phases is wasted. It is because of this that the waterfall model is now almost extinct. There are several other models for product development that are now far more popular. A couple of these are the Spiral process, in which each loop in the spiral will add a more features and functionality to the product, and eXtreme Programming (or XP), which introduces some revolutionary ideas about how programming should be carried out.

Log in or register to write something here or to contact authors.