Waterfall Model is a model of software development that moves in a series of fixed stages: requirements specification, design, implementation, testing, and installation. The model works well for small-scale development, but it is too rigid for large- scale system development. For example, clients are rarely able to explain their functional requirements fully at the beginning of the project because they may realize what they want only after they are able to see the system in operation. But they delay system implementation until relatively late in the project, when it is too late to change the software. See incremental development, iterative development, software development life cycle (SDLC), software engineering.