Some citations (I completely agree according to my experience).
Everything will look fine until you suddenly discover that the next user story conflicts with previously implemented ones, and you have to go back and rethink everything
...no project in its right mind would today go into the scheme of splitting the task into large chunks leading to separate subprojects, and trying to reconcile them months down the road. The splitting is easy; it is the reconciliation that can be a nightmare
...no magic process can, through refactoring, turn bad design into good. Refactoring junk yields junk
Continuous integration and continuous testing are natural complements to this core idea. These and a number of other agile precepts are truly Good.
Agile is not a negation of what came before. It is one more brick in the patient construction of the modern software engineering edifice.