Agile vs Waterfall – Is the Spiral Model/Agile Development a Rapid Waterfall Model?

agilewaterfall

Since I learned about the Spiral Model of software development, I've tried to apply it to the different projects I've been involved in. However, I'm starting to feel like it's really just compressing and iterating more rapidly through a traditional Waterfall Model.

Even in each Spiral or Agile cycle, there are still step-by-step tasks/objectives that need to be finished in order to complete the spiral, and that step-by-step process seems really similar (although shorter total cycle and perhaps less steps) to the Waterfall Model.

Is the main difference the introduction of a feedback loop into the process of development earlier on and throughout the process, or is there a fundamental difference in the actual step-by-step completion of a task?

Best Answer

Spiral is a cycling waterfall. Thats the definition of spiral. That's what Boehm and other proposed when they invented it.

Even in each Spiral or Agile cycle, there are still step-by-step tasks/objectives that need to be finished...

Mostly true.

Is the main difference the introduction of a feedback loop into the process of development earlier on and throughout the process.

Yes.

is there a fundamental difference in the actual step-by-step completion of a task?

The feedback loop is the fundamental difference.

Waterfall demands Big Requirements Up Front (BRUF). It demands Big Design Up Front (BDUF) before any real coding can begin.

Spiral and Agile methods relaxe this demand.

like it's really just compressing and iterating

Don't make it sound so minor. It's not a little tweak. It's a fundamental change in the volume of requirements (and design) and how those requirements (or design) are used.

In waterfall, you can't really start without all the requirements. In many cases, this is an intellectual impossibility. It's hard to visualize all the ramifications of a new way of doing business and new software to empower that new way of doing business.

In Spiral or Agile, you don't have all the information. You have enough to get started.

Many folks want "Spiral" to be "Waterfall". They want a defined schedule based on a complete understanding. In order to stop that foolishness, many folks try not to use the "Spiral" word because it doesn't encourage getting started and delivering software right now with incomplete requirements.