What this suggests to me is that you'll be able to respond to change if the pieces of code you write can be reorganized. This happens when separation of concerns is properly handled, among other things. Change will not happen if you don't. Whatever the methodology. Waterfall can be great if the problem space is already well defined and understood, as implementing a protocol by spec. The specs will not change, and if they are well understood you can plan and estimate a good deal.