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
   47   48   49   50   51   52   53   54   55   56   57