The Waterfall methodology is based on a sequential, linear process and is the most popular variation of the systems development life cycle (SDLC) for software engineering and IT projects. It is simple and easy to use. Sometimes, a Gantt chart is used for planning the start and end dates of the tasks. In this model, phases do not overlap, therefore each phase must be completed before the team proceeds to the next phase. If the team needs to go back to a previous stage, the whole process should start from the beginning. Such action costs a lot of In order to avoid that or the project being discarded, the requirements, concept and technologies are very well defined and documented beforehand.
This type of software development model is usually used for small and unchanging projects with well defined requirements and the technologies are well known and not dynamic. It's not suitable for projects with unclear end goals and requirements or long-term projects.
The results of each phase are reviewed in order to determine whether the project is on the right track and whether to continue or to discard the project. The QA testing begins only when the development is done. Less customer interaction is involved during the development process. A demo product can be presented to the client only when the product is ready.
There are seven stages in waterfall and they must be done successively.
- Define Concept and Requirements: At the first stage, the concept and business goals are discussed and defined with the client over several meetings. Risk are analyzed by the project leader. When all is clear and documented, a rough estimation and evaluation of the project is made.
- Planning: When the concept is clear and the requirements are specified and documented, a team is formed and a course of action is planned. That includes defining projects scope, deadlines and deliverables.
- UI/UX Design: This step is not included in cases when the client comes with their own design. Otherwise, the design team first creates the architecture of the projects and then they proceed to colors, shapes and animations. The design specifications are then used in the coding phase.
- Development: This is where the actual coding begins. Before the actual programming, the design is reviewed and evaluated, so the team can understand and decide how to proceed.
- QA Testing: When the development phase is complete, the product needs to be tested for any visual and functional errors. Some projects require user acceptance testing.
- Delivery: Once the testing is complete and all errors are fixed, the final product is delivered to the client.
- Maintenance: After the final product is released for use, the customers may find additional issues. The development team needs to resolve or modify the software in order to continue to be effective.