The waterfall life cycle model of software development is most appropriately used when:
requirements are well understood and are expected to remain stable, as is the business environment
in which the system will operate.
requirements are well understood and the project is subject to time pressures.
the project intends to apply an object-oriented design and programming approach.
the project will involve the use of new technology.
Historically, the waterfall model has been best suited to the stable conditions described in choice
When the degree of uncertainty of the system to be delivered and the conditions in which it will
be used rises, the waterfall model has not been successful, in these circumstances, the various
forms of iterative development life cycle gives the advantage of breaking down the scope of the
overall system to be delivered, making the requirements gathering and design activities more
manageable. Theability to deliver working software earlier also acts to alleviate uncertainty and
may allow an earlier realization of benefits. The choice of a design and programming approach is
not itself a determining factor of the type of software development life cycle that is appropriate. The
use of new technology in a project introduces a significant element of risk. An iterative form of
development, particularly one of the agile methods that focuses on early development of actual
working software, is likely to be the better option to manage this uncertainty.