...
Waterfall | Scrum | |
---|---|---|
Fundamental Assumptions | Systems are fully specifiable, predictable, and can be build through meticulous and extensive planning. | High-quality, adaptive software can be developed by small teams using principles of continuous design improvement and testing based on rapid feedback and change. |
Control | Process centric | People centric |
Management Style | Command-and-control | Leadership-and-collaboration |
Knowledge Management | Explicit | Tacit |
Role Assignment | Individual - favors specialization | Self-organizing teams - encourages role interchangeability |
Communication | Formal | Informal |
Customer's Role | Important | Critical |
Project Cycle | Guided by tasks or activities | Guided by product features |
Development Model | Life cycle model | Evolutionary delivery model |
Desired Organizational Structure | Mechanistic (bureaucratic with high formalization) | Organic (flexible and participative, encouraging cooperative social action) |
When to Use Waterfall and When to Use Scrum
We recommend using Waterfall if:
- You don’t expect changes in scope and you’re working with fixed-price contracts
- The project is very simple or you’ve done it many times before
- Requirements are very well known and fixed
- Customers know exactly what they want in advance
- You’re working with orderly and predictable projects
And you should use Scrum if:
- The final product isn’t clearly defined
- The clients/stakeholders need the ability to modify the scope
- You anticipate any kind of changes during the project
- Rapid deployment is the goal
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.