<<

COVER FEATURE Iterative and Incremental Development: A Brief History

Although many view iterative and incremental development as a modern practice, its application dates as far back as the mid-1950s. Prominent -engineering thought leaders from each succeeding decade supported IID practices, and many large projects used them successfully.

Craig s agile methods become more popular, opment” merely for rework, in modern agile meth- Larman some view iterative, evolutionary, and ods the term implies not just revisiting work, but Valtech incremental —a also evolutionary advancement—a usage that dates cornerstone of these methods—as the from at least 1968. Victor R. A “modern” replacement of the waterfall Basili model, but its practiced and published roots go back PRE-1970 University of decades. Of course, many software-engineering stu- IID grew from the 1930s work of Walter Maryland dents are aware of this, yet surprisingly, some com- Shewhart,1 a quality expert at Bell Labs who pro- mercial and government organizations still are not. posed a series of short “plan-do-study-act” (PDSA) This description of projects and individual con- cycles for quality improvement. Starting in the tributions provides compelling evidence of iterative 1940s, quality guru W. Edwards Deming began and incremental development’s (IID’s) long exis- vigorously promoting PDSA, which he later tence. Many examples come from the 1970s and described in 1982 in Out of the Crisis.2 Tom Gilb3 1980s—the most active but least known part of and Richard Zultner4 also explored PDSA applica- IID’s history. We are mindful that the idea of IID tion to software development in later works. came independently from countless unnamed pro- The X-15 hypersonic jet was a milestone 1950s jects and the contributions of thousands and that project applying IID,5 and the practice was consid- this list is merely representative. We do not mean ered a major contribution to the X-15’s success. this article to diminish the unsung importance of Although the X-15 was not a software project, it is other IID contributors. noteworthy because some personnel—and hence, We chose a chronology of IID projects and IID experience—seeded NASA’s early 1960s Project approaches rather than a deep comparative analy- Mercury, which did apply IID in software. In addi- sis. The methods varied in such aspects as iteration tion, some Project Mercury personnel seeded the length and the use of time boxing. Some attempted IBM Federal Systems Division (FSD), another early significant up-front specification work followed by IID proponent. incremental time-boxed development, while others Project Mercury ran with very short (half-day) were more classically evolutionary and feedback iterations that were time boxed. The development driven. Despite their differences, however, all the team conducted a technical review of all changes, approaches had a common theme—to avoid a sin- and, interestingly, applied the Extreme Pro- gle-pass sequential, document-driven, gated-step gramming practice of test-first development, plan- approach. ning and writing tests before each micro-increment. Finally, a note about our terminology: Although They also practiced top-down development with some prefer to reserve the phrase “iterative devel- stubs.

2 Computer Published by the IEEE Computer Society 0018-9162/03/$17.00 © 2003 IEEE The recollections of Gerald M. Weinberg, who Another 1960s reference comes from 8 worked on the project, provide a window into some Robert Glass: “We were doing practices during this period. In a personal commu- incremental nication, he wrote: It is the opinion of the author that incremen- tal development is worthwhile, [it] leads to development as We were doing incremental development as early a more thorough system shakedown, avoids early as 1957, in as 1957, in Los Angeles, under the direction of implementer and management discourage- Los Angeles, under Bernie Dimsdale [at IBM’s Service Bureau ment. the direction of Corporation]. He was a colleague of John von Neumann, so perhaps he learned it there, or THE SEVENTIES Bernie Dimsdale assumed it as totally natural. I do remember Herb In his well-known 1970 article, “Manag- [at IBM’s Jacobs (primarily, though we all participated) ing the Development of Large Software Service Bureau developing a large simulation for Motorola, where Systems,” Winston Royce shared his opin- Corporation].” the technique used was, as far as I can tell, indis- ions on what would become known as the tinguishable from XP. , expressed within the con- When much of the same team was reassembled straints of government contracting at that in Washington, DC in 1958 to develop Project time.9 Many—incorrectly—view Royce’s paper as Mercury, we had our own machine and the new the paragon of single-pass waterfall. In reality, he Share Operating System, whose symbolic modifi- recommended an approach somewhat different cation and assembly allowed us to build the system than what has devolved into today’s waterfall con- incrementally, which we did, with great success. cept, with its strict sequence of requirements analy- Project Mercury was the seed bed out of which sis, design, and development phases. Indeed, grew the IBM Federal Systems Division. Thus, that Royce’s recommendation was to do it twice: division started with a history and tradition of incremental development. If the computer program in question is being All of us, as far as I can remember, thought developed for the first time, arrange matters so waterfalling of a huge project was rather stupid, that the version finally delivered to the customer or at least ignorant of the realities… I think what for operational deployment is actually the second the waterfall description did for us was make version insofar as critical design/operations areas us realize that we were doing something else, are concerned. something unnamed except for “software devel- opment.” Royce further suggested that a 30-month project might have a 10-month pilot model and justified The earliest reference we found that specifically its necessity when the project contains novel ele- focused on describing and recommending iterative ments and unknown factors (hardly a unique case). development was a 1968 report from Brian Randell Thus, we see hints of iterative development, feed- and F.W. Zurcher at the IBM T.J. Watson Research back, and adaptation in Royce’s article. This iter- Center.6 M.M. Lehman later described Randell and ative feedback-based step has been lost in most Zurcher’s work and again promoted iterative devel- descriptions of this model, although it is clearly not opment in his September 1969 internal report to classic IID. IBM management on development recommenda- What did Royce think about the waterfall ver- tions:7 sus IID when he learned of the latter approach? In a personal communication, Walker Royce, his son The basic approach recognizes the futility of sep- and a contributor to popular IID methods in the arating design, evaluation, and documentation 1990s, said this of his father and the paper: processes in software-system design. The design process is structured by an expanding model He was always a proponent of iterative, incre- seeded by a formal definition of the system, which mental, evolutionary development. His paper provides a first, executable, functional model. It is described the waterfall as the simplest description, tested and further expanded through a sequence but that it would not work for all but the most of models, that develop an increasing amount of straightforward projects. The rest of his paper function and an increasing amount of detail as to describes [iterative practices] within the context how that function is to be executed. Ultimately, of the 60s/70s government-contracting models (a the model becomes the system. serious set of constraints).

June 2003 3 This was an ironic insight, given the influ- or FSD would face a $100,000 per day late penalty. The first major ence this paper had as part of the bulwark The team organized the project into four time- promoting a strict sequential life cycle for boxed iterations of about six months each. There documented large, complex projects. was still a significant up-front specification effort, IBM FSD IID The next earliest reference comes from and the iteration was longer than normally recom- application was Harlan Mills, a 1970s software-engineering mended today. Although some feedback-driven evo- the life-critical thought leader who worked at the IBM FSD. lution occurred in the requirements, O’Neill noted command and In his well-known “Top-Down Programming that the IID approach was also a way to manage the in Large Systems,” Mills promoted iterative complexity and risks of large-scale development.11 control system for development. In addition to his advice to Also in 1972, an IBM FSD competitor, TRW, the first US Trident begin developing from top-level control struc- applied IID in a major project—the $100 million submarine. tures downward, perhaps less appreciated TRW/Army Site Defense software project for bal- was the related life-cycle advice Mills gave for listic missile defense. The project began in February building the system via iterated expansions:10 1972, and the TRW team developed the system in five iterations. Iteration 1 tracked a single object, … it is possible to generate a sequence of interme- and by iteration 5, a few years later, the system was diate systems of code and functional subspecifica- complete. The iterations were not strictly time tions so that at every step, each [intermediate] boxed, and there was significant up-front specifi- system can be verified to be correct… cation work, but the team refined each iteration in response to the preceding iteration’s feedback.12 Clearly, Mills suggested iterative refinement for As with IBM FSD, TRW (where Royce worked) the development phase, but he did not mention was an early adopter of IID practices. Indeed, Barry avoiding a large up-front specification step, did not Boehm, the originator of the IID in the specify iteration length, and did not emphasize mid-1980s, was chief scientist at TRW. feedback and adaptation-driven development from Another mid-1970s extremely large application each iteration. He did, however, raise these points of IID at FSD was the development of the Light later in the decade. Given his employment at the Airborne Multipurpose System, part of the US IBM FSD, we suspect Mills’s exposure to the more Navy’s helicopter-to-ship weapon system. A four- classic IID projects run there in the early 1970s year 200-person-year effort involving millions of influenced his thought, but we could not confirm lines of code, LAMPS was incrementally delivered this with colleagues. in 45 time-boxed iterations (one month per itera- Early practice of more modern IID (feedback-dri- tion). This is the earliest example we found of a ven refinement with customer involvement and project that used an iteration length in the range of clearly delineated iterations) came under the lead- one to six weeks, the length that current popular ership of Mike Dyer, Bob McHenry, and Don IID methods recommend. The project was quite O’Neill and many others during their tenure at IBM successful: As Mills wrote, “Every one of those FSD. The division’s story is fascinating because of deliveries was on time and under budget.”13 the extent and success of its IID use on large, life- In 1975, Vic Basili and Joe Turner published a critical US Department of Defense (DoD) space and paper about iterative enhancement that clearly avionics systems during this time. described classic IID:14 The first major documented IBM FSD applica- tion of IID that we know of was in 1972. This was The basic idea behind iterative enhancement is to no toy application, but a high-visibility life-critical develop a software system incrementally, allowing system of more than 1 million lines of code—the the developer to take advantage of what was being command and control system for the first US learned during the development of earlier, incre- Trident submarine. O’Neill was project manager, mental, deliverable versions of the system. and the project included Dyer and McHenry. Learning comes from both the development and O’Neill conceived and planned the use of IID use of the system, where possible. Key steps in the (which FSD later called “integration engineering”) process were to start with a simple implementa- on this project; it was a key success factor, and he tion of a subset of the and was awarded an IBM Outstanding Contribution iteratively enhance the evolving sequence of ver- Award for the work. (Note that IBM leadership vis- sions until the full system is implemented. At each ibly approved of IID methods.) iteration, design modifications are made along The system had to be delivered by a certain date with adding new functional capabilities.

4 Computer The paper detailed successful IID application to an open loop, rather than a closed loop with the development of extendable for a fam- user feedback between iterations. The danger Tom Gilb ily of application-specific programming languages in the sequence [waterfall approach] is that the introduced the on a variety of hardware architectures. The project project moves from being grand to being team developed the base system in 17 iterations grandiose, and exceeds our human intellectual terms “evolution” over 20 months. They analyzed each iteration from capabilities for management and control. and “evolutionary” both the user’s and developer’s points of view and to the process used the feedback to modify both the language And perhaps reflecting several years of see- lexicon. requirements and design changes in future itera- ing IID in action at FSD, Mills asked, “...why tions. Finally, they tracked measures, such as cou- do enterprises tolerate the frustrations and pling and cohesion, over the multiple iterations. difficulties of such [waterfall] development?” In 1976, Tom Gilb published Software Metrics In 1977, FSD incorporated the Trident IID (coining the term), in which he discussed his IID approach, which included integrating all software practice—evolutionary —and components at the end of each iteration into its introduced the terms “evolution” and “evolution- software-engineering practices—an approach ary” to the process lexicon. This is the earliest book McHenry dubbed “integration engineering.” Some we could find that had a clear IID discussion and Trident team members and Mills were key advisers promotion, especially of evolutionary delivery:3 in this incorporation effort.16 Integration engi- neering spread to the 2,500 FSD software engi- “Evolution” is a technique for producing the neers, and the idea of IID as an alternative to the appearance of stability. A complex system will be waterfall stimulated substantial interest within most successful if it is implemented in small steps IBM’s commercial divisions and senior customer and if each step has a clear measure of successful ranks and among its competitors. achievement as well as a “retreat” possibility to a Although unknown to most software profes- previous successful step upon failure. You have the sionals, another early and striking example of a opportunity of receiving some feedback from the major IID success is the very heart of NASA’s space real world before throwing in all resources shuttle software—the primary avionics software intended for a system, and you can correct possi- system, which FSD built from 1977 to 1980. The ble design errors… team applied IID in a series of 17 iterations over 31 months, averaging around eight weeks per itera- The book marked the arrival of a long-standing tion.17 Their motivation for avoiding the waterfall and passionate voice for evolutionary and iterative life cycle was that the shuttle program’s require- development. Gilb is one of the earliest and most ments changed during the software development active IID practitioners and promoters. He began process. Ironically (in hindsight), the authors sound the practice in the early 1960s and went on to almost apologetic about having to forego the establish several IID milestones. His material was “ideal” waterfall model for an IID approach: probably the first with a clear flavor of agile, light, and adaptive iteration with quick results, similar Due to the size, complexity, and evolutionary to that of newer IID methods. [changing requirements] nature of the program, it By 1976, Mills had strengthened his IID mes- was recognized early that the ideal software devel- sage:15 opment life cycle [the waterfall model] could not be strictly applied...However, an implementation Software development should be done incremen- approach (based on small incremental releases) tally, in stages with continuous user participation was devised for STS-1 which met the objectives by and replanning and with design-to-cost program- applying the ideal cycle to small elements of the ming within each stage. overall software package on an iterative basis.

Using a three-year inventory system project as a The shuttle project also exhibited classic IID prac- backdrop, he challenged the idea and value of up- tices: time-boxed iterations in the eight-week range, front requirements or design specification: feedback-driven refinement of specifications, and so on. ...there are dangers, too, particularly in the con- The first IID discussion in the popular press that duct of these [waterfall] stages in sequence, and we could find was in 1978, when Tom Gilb began not in iteration-i.e., that development is done in publishing a column in the UK’s Computer Weekly.

June 2003 5 The column regularly promoted IID, as well a synonym for waterfall during this period suggests The IID practice as evolutionary project management and its unquestioned dominance. Contrast this to its delivery. In his 6 April 1978 column, Gilb qualified use in the 1990s, “sequential life cycle” of evolutionary wrote, or “iterative life cycle.”) prototyping was In 1982, William Swartout and Robert Balzer commonly used Management does not require firm estimates argued that specification and design have a neces- in 1980s efforts of completion, time, and money for the entire sary interplay, and they promoted an iterative and project. Each [small iterative] step must meet evolutionary approach to requirements engineer- to create artificial one of the following criteria (priority order): ing and development.23 The same year also pro- intelligence either (a) give planned return on investment vided the earliest reference to a very large appli- systems. payback, or, if impossible, then (b) give cation successfully built using evolutionary proto- breakeven (no loss); or, at least, (c) some posi- typing, an IID approach that does not usually tive user benefit measurably; or, at least (d) include time-boxed iterations. The $100 million some user environment feedback and learning. military command and control project was based on IBM’s Customer Information Control System Another discussion of incremental development, technology.24 although published in 1984, refers to a System In 1983, published Software Development Corp. project to build an air defense Engineering with Ada,25 in which he described an system, which began in 1977 and finished in 1980. iterative process for growing an object-oriented sys- The project combined significant up-front specifi- tem. The book was influential primarily in the DoD cations with incremental development and builds. development community, but more for the object- Ostensibly, the project was meant to fit within DoD oriented design method than for its iterative advice. single-pass waterfall standards, with testing and However, Booch’s later 1990s books that covered integration in the last phase. Carolyn Wong com- IID found a large general audience, and many first ments on the unrealism of this approach and the considered or tried iterative development through team’s need to use incremental development:18 their influence. The early 1980s was an active period for the The [waterfall] model was adopted because soft- (attempted) creation of artificial intelligence systems, ware development was guided by DoD stan- expert systems, and so on, especially using Lisp dards…In reality, software development is a machines. A common approach in this community complex, continuous, iterative, and repetitive was the IID practice of evolutionary prototyping.26 process. The [waterfall model] does not reflect this In another mid-1980s questioning of the sequen- complexity. tial life cycle, Gilb wrote “Evolutionary Delivery versus the ‘Waterfall Model.’” In this paper, Gilb THE EIGHTIES promoted a more aggressive strategy than other IID In 1980 Weinberg wrote about IID in “Adaptive discussions of the time, recommending frequent Programming: The New Religion,” published in (such as every few weeks) delivery of useful results Australasian Computerworld. Summarizing the to stakeholders.27 article, he said, “The fundamental idea was to build A 1985 landmark in IID publications was in small increments, with feedback cycles involv- ’s “A Spiral Model of Software ing the customer for each.” A year later, Tom Gilb Development and Enhancement,” (although the wrote in more detail about evolutionary develop- more frequent citation date is 1986).28 The spiral ment.19 model was arguably not the first case in which a In the same year, Daniel McCracken and Michael team prioritized development cycles by risk: Gilb Jackson promoted IID and argued against the “stul- and IBM FSD had previously applied or advocated tifying waterfall” in a chapter within a software variations of this idea, for example. However, the engineering and design text edited by William spiral model did formalize and make prominent Cotterman. The chapter’s title, “A Minority the risk-driven-iterations concept and the need to Dissenting Position,” underscored the subordinate use a discrete step of risk assessment in each iter- position of IID to the waterfall model at the time.20 ation. Their arguments continued in “Life-Cycle Concept In 1986, Frederick Brooks, a prominent soft- Considered Harmful,”21 a 1982 twist on Edsger ware-engineering thought leader of the 1970s and Dijkstra’s late 1960s classic “Go To Statement 1980s, published the classic “No Silver Bullet” Considered Harmful.”22 (The use of “life cycle” as extolling the advantages of IID:29

6 Computer Nothing in the past decade has so radically attention to high risks and the core archi- changed my own practice, or its effectiveness [as tecture in the early iterations. The Cleanroom incremental development]. Bill Curtis and colleagues published a par- method ticularly agile-relevant paper during this Commenting on adopting a waterfall process, decade,32 reporting results on research into incorporated Brooks wrote the processes that influenced 19 large pro- evolutionary jects. The authors identified that the pre- development Much of present-day software acquisition proce- scriptive waterfall model attempted to satisfy with more formal dure rests upon the assumption that one can spec- management accountability goals, but they ify a satisfactory system in advance, get bids for did not describe how projects successfully methods of its construction, have it built, and install it. I think ran. The paper also noted that successful specification this assumption is fundamentally wrong, and that development emphasizes a cyclic learning and proof. many software acquisition problems spring from process with high attention to people’s skills, that fallacy. common vision, and communication issues, rather than viewing the effort as a sequential Perhaps summing up a decade of IID-promoting “manufacturing process.” As the authors state, messages to military standards bodies and other organizations, Brooks made his point very clear in The conclusion that stands out most clearly from his keynote speech at the 1995 International our field study observations is that the process of Conference on : “The water- developing large software systems must be treated, fall model is wrong!” at least in part, as a learning and communication In 1986, and Paul Clements pub- process. lished “A Rational Design Process: How and Why to Fake It.”30 In it, they stated that, although they In 1987, as part of the IBM FSD Software believe in the ideal of the waterfall model (thorough, Engineering Practices program, Mills, Dyer, and correct, and clear specifications before develop- Rick Linger continued the evolution of IID with ment), it is impractical. They listed many reasons, the Cleanroom method, which incorporated evo- including (paraphrased) lutionary development with more of specification and proof, reflecting Mills’s strong • A system’s users seldom know exactly what mathematical influences.33 they want and cannot articulate all they know. By the late 1980s, the DoD was experiencing sig- • Even if we could state all requirements, there nificant failure in acquiring software based on the are many details that we can only discover strict, document-driven, single-pass waterfall once we are well into implementation. model that DoD-Std-2167 required. A 1999 review • Even if we knew all these details, as humans, of failure rates in a sample of earlier DoD projects we can master only so much complexity. drew grave conclusions: “Of a total $37 billion for • Even if we could master all this complexity, the sample set, 75% of the projects failed or were external forces lead to changes in require- never used, and only 2% were used without exten- ments, some of which may invalidate earlier sive modification.”34 Consequently, at the end of decisions. 1987, the DoD changed the waterfall-based stan- dards to allow IID, on the basis of recommenda- and commented that for all these reasons, “the pic- tions in an October 1987 report from the Defense ture of the software designer deriving his design in Science Board Task Force on Military Software, a rational, error-free way from a statement of chaired by Brooks. The report recommended requirements is quite unrealistic.” replacing the waterfall, a failing approach on many In 1987, TRW launched a four-year project to large DoD projects, with iterative development: build the Command Center Processing and Display System Replacement (CCPDS-R), a command and DoD-Std-2167 likewise needs a radical overhaul control system, using IID methods. Walker Royce to reflect modern best practice. Draft 2167A is a described the effort in 60 pages of detail.31 The step, but it does not go nearly far enough. As team time-boxed six iterations, averaging around drafted, it continues to reinforce exactly the doc- six months each. The approach was consistent ument-driven, specify-then-build approach that with what would later become the Rational lies at the heart of so many DoD software prob- (to which Royce contributed): lems….

June 2003 7 In the decade since the waterfall model was the IID material from Software Metrics. Gilb Tom Gilb’s developed, our discipline has come to recog- described the Evo method, distinguished by frequent Principles of nize that [development] requires iteration evolutionary delivery and an emphasis on defining between the designers and users. quantified measurable goals and then measuring the Software actual results from each time-boxed short iteration. Engineering Finally, in a section titled “Professional Management was Humility and Evolutionary Development” 1990 TO THE PRESENT the first book with (humility to accept that the 2167’s goals— By the 1990s, especially the latter half, public get the specifications accurate without incre- awareness of IID in software development was sig- substantial chapters mental implementation and feedback—was nificantly accelerating. Hundreds of books and dedicated to not possible), the report stated: papers were promoting IID as their main or sec- IID discussion ondary theme. Dozens more IID methods sprang and promotion. Experience with confidently specifying and forth, which shared an increasing trend to time- painfully building mammoths has shown it to boxed iterations of one to six weeks. be simplest, safest, and even fastest to develop In the 1970s and 1980s, some IID projects still a complex software system by building a min- incorporated a preliminary major specification imal version, putting it into actual use, and then stage, although their teams developed them in iter- adding functions [and other qualities] according ations with minor feedback. In the 1990s, in con- to the priorities that emerge from actual use. trast, methods tended to avoid this model, Evolutionary development is best technically, preferring less early specification work and a and it saves time and money. stronger evolutionary analysis approach. The DoD was still experiencing many failures with Both DoD overseers and contractors often view “waterfall-mentality” projects. To correct this and the updated DoD-Std-2167A, released in February to reemphasize the need to replace the waterfall 1988, as the epitome of a waterfall specification. model with IID, the Defense Science Board Task Yet, its authors actually wanted it to be an amend- Force on Acquiring Defense Software Commercially, ment (hence the A) for life-cycle neutrality that chaired by Paul Kaminski, issued a report in June allowed IID alternatives to the waterfall: 1994 that stated simply, “DoD must manage pro- grams using iterative development. Apply evolu- This standard is not intended to specify or dis- tionary development with rapid deployment of courage the use of any particular software devel- initial functional capability.” opment method. The contractor is responsible for Consequently, in December 1994, Mil-Std-498 selecting software development methods (for replaced 2167A. An article by Maj. George example, rapid prototyping) that best support the Newberry summarizing the changes included a sec- achievement of contract requirements. tion titled “Removing the Waterfall Bias,” in which he described the goal of encouraging evolutionary Despite this intent, many (justifiably) interpreted acquisition and IID:36 the new standard as containing an implied prefer- ence for the waterfall model because of its contin- Mil-Std-498 describes software development in ued document-driven milestone approach. one or more incremental builds. Each build imple- Ironically, in a conversation nearly a decade later, ments a specified subset of the planned capabili- the principal creator of DoD-Std-2167 expressed ties. The process steps are repeated for each build, regret for creating the strict waterfall-based stan- and within each build, steps may be overlapping dard. He said that at the time he knew of the sin- and iterative. gle-pass document-driven waterfall model, and others he questioned advised it was excellent, as Mil-Std-498 itself clearly states the core IID prac- did the literature he examined, but he had not heard tices of evolving requirements and design incre- of iterative development. In hindsight, he said he mentally with implementation: would have made a strong recommendation for IID rather than the waterfall model. If a system is developed in multiple builds, its In 1988, Gilb published Principles of Software requirements may not be fully defined until the Engineering Management, the first book with sub- final build…. If a system is designed in multiple stantial chapters dedicated to IID discussion and builds, its design may not be fully defined until the promotion.35 In it he reiterated and expanded on final build.

8 Computer Meanwhile, in the commercial realm, Jeff DeLuca created an overall iterative process Sutherland and Ken Schwaber at Easel Corp. had description, Feature-Driven Development XP garnered started to apply what would become known as the (FDD), that also incorporated ideas from significant public Scrum method, which employed time-boxed 30- Coad.43 day iterations. The method took inspiration from In 1998, the Standish Group issued its attention because a Japanese IID approach used for nonsoftware widely cited “CHAOS: Charting the Seas of of its emphasis on products at Honda, Canon, and Fujitsu in the Information Technology,” a report that ana- communication, 1980s; from Shashimi (“slices” or iterations); and lyzed 23,000 projects to determine failure simplicity, and from a version of Scrum described in 1986.37 A factors. The top reasons for project failure, testing, and its 1999 article described their later refinements to according to the report, were associated with Scrum.38 waterfall practices. It also concluded that IID sustainable In January 1994, a group of 16 rapid application practices tended to ameliorate the failures. developer-oriented development (RAD) practitioners met in the UK to One of the report’s key conclusions was to practices. discuss the definition of a standard iterative process adopt IID: to support RAD development. The group drew inspiration from ’s RAD teachings. Research also indicates that smaller time Martin, in turn, had taken his inspiration from the frames, with delivery of software components time-boxing work at Dupont, led by Scott Shultz early and often, will increase the success rate. in the mid-1980s. The RAD group’s process defin- Shorter time frames result in an iterative process ition would eventually become the Dynamic of design, prototype, develop, test, and deploy Systems Development Method (DSDM), an IID small elements. method that predictably had more early advocates in Europe and has since spread.39 In 2000, DoD replaced Mil-Std-498 with In the early 1990s, a consortium of companies another software acquisition standard, DoD began a project to build a new-generation 5000.2, which again recommended adopting evo- Canadian Automated Air Traffic Control System lutionary acquisition and the use of IID: (CAATS) using a risk-driven IID method. The pro- ject, under the process leadership of Philippe There are two approaches, evolutionary and sin- Kruchten, used a series of six-month iterations, rel- gle step [waterfall], to full capability. An evolu- atively long by today’s standards. The project was tionary approach is preferred. … [In this] a success, despite its prior near-failure applying a approach, the ultimate capability delivered to the waterfall approach.40 user is divided into two or more blocks, with In the mid-1990s, many contributors within increasing increments of capability...software Rational Corp. (including Kruchten and Walker development shall follow an iterative spiral devel- Royce) and its clients created the Rational Unified opment process in which continually expanding Process, now a popular IID method. A 1995 mile- software versions are based on learning from ear- stone was the public promotion of the daily build lier development. and smoke test, a widely influential IID practice institutionalized by Microsoft that featured a one- In 2001, Alan MacCormack reported a study of day micro-iteration.41 key success factors in recent projects; first among In 1996, joined the Chrysler C3 pay- these was adopting an IID life cycle:44 roll project. It was in this context that the full set of XP practices matured, with some collaboration by Now there is proof that the evolutionary approach Ron Jeffries and inspiration from earlier 1980s to software development results in a speedier work at Tektronix with . XP process and higher-quality products. […] The iter- went on to garner significant public attention ative process is best captured in the evolutionary because of its emphasis on communication, sim- delivery model proposed by Tom Gilb. plicity, and testing, its sustainable developer- oriented practices, and its interesting name.42 In February 2001, a group of 17 process In 1997, a project to build a large logistics system experts—representing DSDM, XP, Scrum, FDD, in Singapore, which had been running as a water- and others—interested in promoting modern, sim- fall project, was facing failure. With the collabora- ple IID methods and principles met in Utah to dis- tion of Peter Coad and Jeff De Luca, the team cuss common ground. From this meeting came the resurrected it and ran it as a successful IID project. Agile Alliance (www.agilealliance.org) and the now

June 2003 9 popular catch phrase “agile methods,” all of which apply IID. And in 2002, Alistair Cockburn, one of References the participants, published the first book under the 1. W. Shewhart, Statistical Method from the Viewpoint new appellation.45 of Quality Control, Dover, 1986 (reprint from 1939). 2. W.E. Deming, Out of the Crisis, SPC Press, 1982; reprinted in paperback by MIT Press, 2003. n a typical quip, H.L. Mencken said, “For every 3. T. Gilb, Software Metrics, Little, Brown, and Co., complex problem, there is a solution that is sim- 1976 (out of print). I ple, neat, and wrong.” In the history of science, 4. R. Zultner, “The Deming Approach to Quality Soft- it is the norm that simplistic but inferior ideas first ware Engineering,” Quality Progress, vol. 21, no. 11, hold the dominant position, even without sup- 1988, pp. 58-64. porting results. Medicine’s four humors and related 5. W.H. Dana, The X-15 Lessons Learned, tech. report, astrological diagnosis and prescription dominated NASA Dryden Research Facility, 1993. Europe for more than a millennium, for example. 6. B. Randell and F.W. Zurcher, “Iterative Multi-Level Software development is a very young field, and Modeling: A Methodology for Computer System it is thus no surprise that the simplified single-pass Design,” Proc. IFIP, IEEE CS Press, 1968, pp. 867- and document-driven waterfall model of “require- 871. ments, design, implementation” held sway during 7. M.M. Lehman, “The Programming Process,” inter- the first attempts to create the ideal development nal IBM report, 1969; reprinted in Program Evolu- process. Other reasons for the waterfall idea’s early tion—Processes of Software Change, Academic Press, adoption or continued promotion include: 1985. 8. R. Glass, “Elementary Level Discussion of Com- • It’s simple to explain and recall. “Do the piler/Interpreter Writing,” ACM Computing Surveys, requirements, then design, and then imple- Mar. 1969, pp. 64-68. ment.” IID is more complex to understand and 9. W. Royce, “Managing the Development of Large describe. Even Winston Royce’s original two- Software Systems,” Proc. Westcon, IEEE CS Press, iteration waterfall immediately devolved into 1970, pp. 328-339. a single sequential step as other adopters used 10. H. Mills, “ Techniques in Large Systems,” it and writers described it. Software Productivity, Dorset House, 1988. • It gives the illusion of an orderly, accountable, 11. D. O’Neill, “Integration Engineering Perspective,” J. and measurable process, with simple docu- Systems and Software, no. 3, 1983, pp. 77-83. ment-driven milestones (such as “requirements 12. R.D. Williams, “Managing the Development of Reli- complete”). able Software,” Proc. Int’l Conf. Reliable Software, • It was promoted in many software engineering, ACM Press, 1975, pp. 3-8. , and management 13. H. Mills, “Principles of Software Engineering,” IBM texts, courses, and consulting organizations. Systems J., vol. 19, no. 4, 1980, pp. 289-295. It was labeled appropriate or ideal, seemingly 14. V. Basili and J. Turner, “Iterative Enhancement: A unaware of this history or of the statistically Practical Technique for Software Development,” significant research evidence in favor of IID. IEEE Trans. Software Eng., Dec. 1975, pp. 390- 396. This brief history shows that IID concepts have 15. H. Mills, “Software Development,” IEEE Trans. been and are a recommended practice by promi- Software Eng., Dec. 1976, pp. 265-273. nent software-engineering thought leaders of each 16. D. O’Neill, “The Management of Software Engi- decade, associated with many successful large pro- neering,” IBM Systems J., vol. 19, no. 4, 1980, pp. jects, and recommended by standards boards. 421-431. Yet, even though the value of IID is well known 17. W. Madden and K. Rone, “Design, Development, among literate, experienced software engineers, Integration: Space Shuttle Flight Software System,” some commercial organizations, consulting compa- Comm. ACM, Sept. 1984, pp. 914-925. nies, and standards bodies still promote a document- 18. C. Wong, “A Successful Software Development,” driven single-pass sequential life cycle as the ideal. IEEE Trans. Software Eng., no. 3, 1984, pp. 714- We conclude with this recommendation: In the inter- 727. est of promoting greater project success and saving 19. T. Gilb, “Evolutionary Development,” ACM Soft- taxpayer or investor dollars, let’s continue efforts to ware Eng. Notes, Apr. 1981, p. 17. educate and promote the use of IID methods. ■ 20. W.W. Cotterman et al., eds., and

10 Computer Design: A Foundation for the 1980’s, North-Hol- ment,” Pattern Languages of Program Design, vol. land, 1981. 4, 1999, pp. 637-651. 21. D. McCracken and M. Jackson, “Life-Cycle Concept 39. J. Stapleton, DSDM: Dynamic Systems Development Considered Harmful,” ACM Software Eng. Notes, Method, Addison-Wesley, 1997. Apr. 1982, pp. 29-32. 40. P. Kruchten, “Rational Development Process,” 22. E. Dijkstra, “Go To Statement Considered Harmful,” Crosstalk: J. Defense Software Eng., July 1996, Comm. ACM, Mar. 1968, pp. 147-148. www.stsc.hill.af.mil/crosstalk/frames.asp?uri=1996/07/ 23. W. Swartout and R. Balzer, “On the Inevitable Inter- rational.asp. twining of Specification and Implementation,” 41. J. McCarthy, Dynamics of Software Development, Comm. ACM, July 1982, pp. 438-440. Microsoft Press, 1995. 24. D. Tamanaha, “An Integrated Rapid Prototyping 42. K. Beck, Explained: Embrace Methodology for Command and Control Systems: Change, Addison-Wesley, 1999. Experience and Insight,” ACM Software Eng. Notes, 43. P. Coad et al., “Feature-Driven Development,” in Dec. 1982, pp. 387-396. Java Modeling in Color with UML, Prentice Hall, 25. G. Booch, Software Engineering with Ada, Benjamin- 1999. Cummings, 1983. 44. A. MacCormack, “Product-Development Practices 26. R. Budde et al., eds., Approaches to Prototyping, That Work,” MIT Sloan Management Rev., vol. 42, Springer Verlag, 1984. no. 2, 2001, pp. 75-84. 27. T. Gilb, “Evolutionary Delivery versus the ‘Waterfall 45. A. Cockburn, Agile Software Development, Addi- Model’,” ACM Software Requirements Eng. Notes, son-Wesley, 2002. July 1985. 28. B. Boehm, “A Spiral Model of Software Development and Enhancement,” Proc. Int’l Workshop Software Process and Software Environments, ACM Press, 1985; also in ACM Software Eng. Notes, Aug. 1986, pp. 22-42. 29. F. Brooks, “No Silver Bullet: Essence and Accidents of Software Engineering,” Proc. IFIP, IEEE CS Press, 1987, pp. 1069-1076; reprinted in Computer, Apr. 1987, pp. 10-19. 30. D. Parnas and P. Clements, “A Rational Design Process: How and Why to Fake It,” IEEE Trans. is chief scientist for Valtech, an Software Eng., Feb. 1986, pp. 251-257. international consulting company, and he speaks 31. W. Royce, Software Project Management, Addison- and consults worldwide. He is also the author of Wesley, 1998. Agile and Iterative Development: A Manager’s 32. W. Curtis et al., “On Building Software Process Mod- Guide (Addison-Wesley, 2003), which examines els under the Lamppost,” Proc. Int’l Conf. Software both historical and other forms of evidence demon- Eng., IEEE CS Press, 1987, pp. 96-103. strating the advantages of iterative methods. Lar- 33. H. Mills et al., “Cleanroom Software Engineering,” man is a member of the ACM and the IEEE. IEEE Software, Sept. 1987, pp. 19-25. Contact him at [email protected]. 34. S. Jarzombek, Proc. Joint Aerospace Weapons Sys- tems Support, Sensors and Simulation Symp., Gov’t Printing Office Press, 1999. 35. T. Gilb, Principles of Software Engineering Manage- ment, Addison Wesley Longman, 1989. 36. G.A. Newberry, “Changes from DOD-STD-2167A Victor R. Basili is a professor of to MIL-STD-498,” Crosstalk: J. Defense Software at the University of Maryland and executive direc- Eng., Apr. 1995, www.stsc.hill.af.mil/crosstalk/ tor of the Fraunhofer Center-Maryland, where he frames.asp?uri=1995/04/Changes.asp. works on measuring, evaluating, and improving 37. H. Takeuchi and I. Nonaka, “The New New Product the software development process and product. He Development Game,” Harvard Business Rev., Jan. is an IEEE and ACM fellow and co-editor-in-chief 1986, pp. 137-146. of Kluwer’s Empirical Software Engineering: An 38. M. Beedle et al., “SCRUM: An Extension Pattern International Journal. Contact him at basili@cs. Language for Hyperproductive Software Develop- umd.edu.

June 2003 11