1. Idealized, doesn’t match reality well.
2. Doesn’t reflect iterative nature of exploratory
development.
3. Unrealistic to expect accurate requirements so
early in project.
4. Software is delivered late in project, delays discovery
of serious errors.
5. Difficult to integrate risk management.
6. Difficult and expensive to make changes to
documents, ”swimming upstream”.
7. Significant administrative overhead, costly for small
teams and projects