The waterfall model is known for its linear progress and rigid scheduling, which makes it great for projects that have a clear start and end (like developing a website). But it can also be used in situations where you need to follow a set order of tasks to reach your goal. Let's take a look at some examples of how this could be applied in practice: Developing an app or website: Requirements Gathering: In this stage, you would gather all of the requirements for your project from stakeholders and team members. This could include things like a needs assessment or market research. If you have multiple stakeholders involved in your project then this stage may end up being iterative where each stakeholder gives feedback about their needs before moving on to the next phase. Designing: In this phase, you would create functional specifications based on what was gathered in the previous phase(s). This would include creating user stories for each feature or requirement that was identified during requirements gathering. If there were any changes made from one iteration to another then those changes would also be reflected here (for example if an idea was added or removed). Coding: In this phase, developers will code the software based on the functional specifications that were created in the previous phase. Testing: Once the code has been written, it needs to be tested for bugs and functionality. This can be done by both developers and non-developers alike as long as they have been trained on how to test (which should be done before beginning this stage).