Page 52 -
P. 52
ChaptEr 4
ITERATION IN SYSTEMS ANALYSIS AND DESIGN
Cognitive Processes and Representational Artifacts
niCholas bErEntE and kallE lyytinEn
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 itera-
tion: 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.
Keywords: Iterative Development, Design Iteration, Evolutionary Prototyping, Evolutionary En-
hancement, Software Prototyping, Agile Methodologies, Rapid Application Development
INTRODUCTION
Recent agile methods recognize “iterative development” as a fundamental design principle
(Cockburn, 2002). Yet, the idea of iteration is not new—system analysis and design has always
been iterative! From the earliest development methodologies, the concept of iteration has been
inherent in discussions about system design, though not always explicitly. Therefore, for those
researching and developing systems it is important to understand what is iterated during design,
why it is iterated, and what the impacts of this iteration are.
In this chapter we explore the concept of iteration and how it has been applied to systems analy-
sis and design. We distinguish between two domains of iteration: iterations inherent in cognitive
processes during design, and iterations over representational artifacts about designs. Cognitive
iterations are concerned with the design object itself, the design process, or stages in the design
process. Iterations of representational artifacts take place across descriptive documentation associ-
ated with the system and its components or the executable code. Table 4.1 depicts the framework.
Our goal is to review how past research on systems analysis and design has treated iteration within
these different domains, what we know about these iterations, and how these iterations have been
shown to affect design outcomes. We do this by surveying the main streams of the systems analy-
37