ABSTRACT

The concept of iteration is fundamental to systems analysis and design practice and methods. In this chapter we explore the notion of iteration and distinguish two domains of iteration: iterations associated with cognitive processes that take place during design and iterations over representational artifacts about the design. Cognitive iterations can be concerned with the design, the design process, or stages within the design process. Representational artifacts can take the form of descriptive documentation of the system or the executable code itself. We discuss the claimed impacts of “iterative development” and compare these impacts to empirical findings on the effects of iterative methods. The findings are generally consistent with expected outcomes. We conclude with the observation that the differences between “iterative” or “agile” development and traditional methodologies lie not in the presence or absence of iteration, but in the locus of visibility and control, and the associated timing and granularity of what is being iterated.