...
- Customers know exactly what they want in advance and will not change their mind
- You know exactly what your customers want
- You know that your users will like have no concerns with your initial design
- Any feedback from users is not addressed or can be either addressed in a subsequent project or not at all
- You’re working with fixed-price / fixed-bid contracts
- The project is very simple or you’ve done it many times before
- You’re working with simple, unchanging projects
- You anticipate zero errors only minor mistakes throughout the project
And you should use Scrum if:
- Your customer does not know exactly what they want at first or could change their mind
- You don't always know exactly what your customers want or they're needs aren't always communicated perfectly
- Your users provide feedback on your design and you'd like to act on it
- You prefer to address user feedback during the project rather than after (or never)instead of after
- The final product isn’t clearly defined at first or the definition may change
- You anticipate there will be changes in scope, requirements, opinions, priority, environment, people, or technology during the project
- Some part of the project is different or is of moderate complexity
- You want the option of calling closing a project "done" early once sufficient value is created (avoiding "everything but the kitchen sink" pitfall)Errors during the process are typically identified and corrected quickly
When deciding between Agile versus Waterfall, it can all boil down to this: if you anticipate or expect any changes throughout the project, go with Agile. If you know the project is fixed, unchanging, and predictable, Waterfall may be a better choice.