Iterative and incremental development – Usage (kb)

Many examples of early usage are provided in Craig Larman and Victor Basilis article “Iterative and Incremental Development: A Brief History”, with one of the earliest being NASAs 1960s Project Mercury.

Another is an “early and striking example of a major IID success is the very heart of NASA’s space shuttle software—the primary avionics software system, which FSD built from 1977 to 1980. The team applied IID in a series of 17 iterations over 31 months, averaging around eight weeks per iteration. Their motivation for avoiding the waterfall life cycle was that the shuttle program’s requirements changed during the software development process”.

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 current DoD Instruction 5000.2, released in 2000, states a clear preference for IID: “There are two approaches, evolutionary and single step [waterfall], to full capability. An evolutionary approach is preferred. … [In this] approach, the ultimate capability delivered to the user is divided into two or more blocks, with increasing increments of capability…software development shall follow an iterative spiral development process in which continually expanding software versions are based on learning from earlier development. It can also be done in phases .