CHAPTER 13 Iterative Models

When to use iterative development? You should use iterative development only on projects that you want to succeed.

—MARTIN FOWLER

Control is for beginners.

—DEBORAH MILLS-SCOFIELD

Iteration is truly the mother of invention.

—MARY BRODIE

WHAT YOU WILL LEARN IN THIS CHAPTER:            

  • Differences between predictive, iterative, incremental, and agile approaches
  • Benefits of prototyping and kinds of prototypes
  • Spiral, Unified Process (plus variations), and Cleanroom development models

Predictive software development has some big advantages. It’s predictable, encourages a lot of up-front design (hence the nickname big design up front or BDUF), and gives a certain inevitability to a project.

Unfortunately, that inevitably can lead to either success or failure. If the design is correct and everything stays on track, the project is like a luxury train coasting majestically into Grand Central Station. However, if something goes wrong, the project is more like a train engulfed in flames and speeding toward a dynamited bridge.

In recent years, software organizations have spent a lot of effort developing techniques that help keep projects headed in the right direction. Lumping all those models and techniques together would make for a bloated chapter, so I decided to split them up a bit.

This chapter discusses one of the techniques that is easiest to apply to any other development model: iteration. In an iterative model, you build the final application ...

Get Beginning Software Engineering now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.