Having been involved in software development for 25 years, including employment at several of the well known Silicon Valley heavyweights, my caution here would be to avoid thinking of waterfall as "the bad old way" and agile as the "cool better way." Agile is absolutely a great methodology when it is the appropriate methodology. I have been in any number of meetings with executives where they are expecting to discuss project feasibility and multi-year, multi-million dollar scopes where we have simply delivered working code and said, "This is what you wanted? Right?" Agile can be really cool that way. However, agile is not magic. Agile does not work well in many projects. (Cisco famously brought down the entire AT&T long distance system for several hours once by deploying some poorly developed "agile" code). Wisdom is in understanding the strengths and weakness of various methodologies in the context of your specific project. Many well designed software projects have waterfall at the core (because it promotes more holistic thinking about the larger problems) combined with agile development of the human interfaces.