The incremental model divides a project into a series of increments. Each increment follows the waterfall model by going through planning, modeling, design, construction, testing, and deployment phases to deliver working functionality. As increments are completed, the working system is expanded until the full system is implemented. This allows software to be delivered in early increments while maintaining flexibility to change scope over the course of the project. However, problems can arise if not all requirements are identified upfront.