Use Agile (Scrum, XP, Kanban) when:
- you want to benefit from fast feedback and burning visibility of objective data
- you don't completely understand the value and definition of what you are building
- your payoff/downside curves could vary widely
- have a team passionate about it or a coach who will help them
- have complicated project without all the experts you need or a complex project
Use Waterfall when:
- the project is simple
- the project is complicated, but you have the expertise to deliver it
- it is all you know and you have no support for change
- the upfront investment is not risky to make
- you focus your performance measures on delivery date and budget