Iteration is a common technique consisting of the repetition of a work unit on an existing work product in order to improve it.
Because application development is largely a human activity and humans are not infallible, we make mistakes that must be corrected. We are also not omnicient, so we do not know everything about the endeavor when we start it. Also, applications are typically so large and complex that they would be obsolete due to changes in requirements when completed if they were produced using a waterfall development cycle. Thus, defects are unavoidable and the development process must provide a means of dealing with these defects.
The typical objectives of iteration are to:
Iteration can typically begin when the following preconditions hold:
Iteration is typically complete if the following postconditions hold:
During iteration, various rolls typically perform the following steps:
Brainstroming typically results in the following work products:
Iteration is typically subject to the following limitations: