Iterative and Incremental Development: A Brief History
Although many view iterative and incremental development as a modern practice, its application dates as far back as the mid-1950s. Prominent software-engineering thought leaders from each succeeding decade supported IID practices, and many large projects used them successfully.
Craig Larman
Valtech
Victor R. Basili
University of Maryland
A
s agile methods become more popular, some view iterative, evolutionary, and incremental software development—a cornerstone of these methods—as the “modern” replacement of the waterfall model, but its practiced and published roots go back decades. Of course, many software-engineering students are aware of this, yet surprisingly, some commercial and government organizations still are not. This description of projects and individual contributions provides compelling evidence of iterative and incremental development’s (IID’s) long existence. Many examples come from the 1970s and 1980s—the most active but least known part of IID’s history. We are mindful that the idea of IID came independently from countless unnamed projects and the contributions of thousands and that this list is merely representative. We do not mean this article to diminish the unsung importance of other IID contributors. We chose a chronology of IID projects and approaches rather than a deep comparative analysis. The methods varied in such aspects as iteration length and the use of time boxing. Some attempted significant up-front specification work followed by incremental time-boxed development, while others were more classically evolutionary and feedback driven. Despite their differences, however, all the approaches had a common theme—to avoid a single-pass sequential, document-driven, gated-step approach. Finally, a note about our terminology: Although some prefer to reserve the phrase “iterative devel-
opment” merely for rework, in modern agile methods the term implies not