The two predominant software-development methodologies are waterfall and agile.  When discussing these two, there is often much focus on the particular practices that distinguish them (pair programming, TDD, etc. vs. functional spec, big up-front design, etc.) But the real differences are far deeper, in that these practices come from a philosophy.Waterfall says:  Change is costly, so it should be minimized.Agile says:  Change is inevitable, so make change cheap.My question is, regardless of what you think of TDD or functional specs, is the waterfall development methodology really viable?  Does anyone really think that minimizing change in software is a viable option for those that desire to deliver valuable software?  Or is the question really about what sort of practices work best in our situations to manage the inevitable change?
Is there a viable alternative to the agile development methodology?
agile;development methodologies;waterfall