Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
add comment

3 Answers

up vote 8 down vote accepted

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.

share|improve this answer
    
Thanks for the great answer! I guess I haven't really been a part of a huge waterfall project where I could really see the difference between the two. You really made this make more sense to me now, especially with the concept of starting with incomplete requirements (which is reality anyway) rather than trying to figure out all the requirements before you start. –  Canuk Jul 13 '11 at 15:51
add comment

At it's core, Spiral is driven by reducing risk while Waterfall is driven by producing artifacts.

share|improve this answer
add comment

yes, but...

Spiral and Rapid Application Development (RAD) are, in general, compressed waterfall cycles

Agile/TDD, however, goes one step further by reducing the documentation artifacts. Features, stories, and test-case scenarios replace volumes of waterfall documentation (functional spec, requirements spec, design spec, and acceptance test plan, to be specific) - you get the rigor without the verbosity

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.