Iterative and incremental development

It should offer a sampling of the key aspects of the problem and provide a solution that is simple enough to understand and implement easily.

To guide the iteration process, a project control list is created that contains a record of all tasks that need to be performed.

Many examples of early usage are provided in Craig Larman and Victor Basili's article "Iterative and Incremental Development: A Brief History",[4] with one of the earliest being NASA's 1960s Project Mercury.

Some of those Mercury engineers later formed a new division within IBM, where "another early and striking example of a major IID success [was] the very heart of NASA’s space shuttle software—the primary avionics software system, which [they] built from 1977 to 1980.

Their motivation for avoiding the waterfall life cycle was that the shuttle program’s requirements changed during the software development process.

"[4] Some organizations, such as the US Department of Defense, have a preference for iterative methodologies, starting with MIL-STD-498 "clearly encouraging evolutionary acquisition and IID".

The DoD Instruction 5000.2 released in 2000 stated a clear preference for IID: There are two approaches, evolutionary and single step [waterfall], to full capability.

Recent revisions to DoDI 5000.02 no longer refer to "spiral development," but do advocate the general approach as a baseline for software-intensive development/procurement programs.

One sector that has recently been substantially affected by this shift of thinking has been the space launch industry, with substantial new competitive forces at work brought about by faster and more extensive technology innovation brought to bear by the formation of private companies pursuing space launch.

Iterative development model
A simplified version of a typical iteration cycle in agile project management
Iterative development