Agility is key to software success
Iterative and agile development methods are truly a paradigm shift from the traditional waterfall methods. The skeptics are afraid of change. They are the people sitting atop of the waterfall knowledge pyramid and do not want to let go their position. I always like to reference an old IBM commercial that had a storyline along the lines of “Adapt or Die”, and that is certainly true when it comes to people resisting technology.
I believe that there is very little use for the waterfall methodology when it comes to software (especially SaaS) development. Waterfall methodology is borrowed from traditional project management techniques used in construction, and manufacturing type projects. It was not tailored or adapted for software development; it is primarily used as is.
Waterfall methodology is very static and therefore only works well on static projects. Waterfall methodology assumes that given the same set of inputs (requirements, architectural design, resources, and time) all projects will output the same exact results. Sure, that might be true when manufacturing toasters or building homes; however, anyone that has worked on software projects can attest that is certainly not the case.
Every software project is different, even if you are building the same “thing” with the same set of inputs; the results are almost guaranteed to differ. Software development is a very dynamic process that is constantly adapting to new technology, market changes, and newfound knowledge. It simply does not make sense to constrain and manage a dynamic process using a static methodology. Using a waterfall methodology to manage software projects is like putting square wheels on a car and expecting it to roll smoothly. It’s just not gonna happen.
