The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential. Waterfall development has distinct goals for each phase of development..systems development life cycle model
Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. It is the same with waterfall development. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back
Requirements – defines needed information, function, behavior, performance and interfaces. Design – data structures, software architecture, interface representations, algorithmic details. Implementation – source code, database, user documentation, testing.
Testing- the system is first divided in units which are developed and tested for their functionalities. These units are integrated into a complete system during Integration phase and tested to check if all modules/units coordinate between each other and the system as a whole behaves as per the specifications
Easy to understand, easy to use Provides structure to inexperienced staff Milestones are well understood Sets requirements stability Good for management control (plan, staff, track) Works well when quality is more important than cost or schedule
All requirements must be known upfront Deliverables created for each phase are considered frozen – inhibits flexibility Can give a false impression of progress Does not reflect problem-solving nature of software development – iterations of phases Integration is one big bang at the end Little opportunity for customer to preview the system (until it may be too late)
Requirements are very well known Product definition is stable Technology is understood New version of an existing product Porting an existing product to a new platform.
Ensure that you spend sufficient time at the start of the project on understanding the objectives, deliverables and scope of the project. Make visible any assumptions that the customer is using, and critically evaluate both the likely end- user benefits and risks of the project. Review your existing network and identify both the information you need and who is likely to have it.
Use initial points of access/leverage to move your agenda forward. Ensure that the project plan takes account of available resource constraints and keeps sufficient time for testing and quality inspection