Thursday, June 12, 2003
IEEE Computer published an issue on agile development this month. Of particular interest is an article on the history of iterative development which is highly recommended for anyone interested in the background of Scrum or any other Agile method.
Larman, Craig and Basili, Victor R. Iterative and Incremental Development: A Brief History. IEEE Computer 36:6:47-56, June 2003.
Iterative and incremental development dates back to the mid-1950's and prominent software-engineering though leaders from each decade supported and used IID practices. Many large projects at NASA, IBM, and elsewhere used them. The DOD standard on waterfall development was misconceived according to its author who relied mainly on textbooks and consultants. It took over a decade for a DOD committee led by Fred Books (Mythical Manmonth) to remedy the problem. Meanwhile there were at least $75B of failed DOD software projects documented.
The first published paper that Larman could find on iterative development was a 1968 report from Biran Randell and F.W. Zurcher at the IBM T.J. Watson Research Center. Interestingly, it lays out the basic development model used by the first software Scrum at Easel Corporation in 1993.
"The basic approach recognizes the futility of separating design, evaluation, and documentation processes in software-system design. The design process is structured by an expanding model seeded by a formal definition of the system, which provides a first, executable, functional model. It is tested and further expanded through a sequence of models, that develop an increasing amount of function and an increasing amount of detail as to how that function is to be executed. Ultimately, the model becomes the system."
Easel was building the first OOAD tool with round trip engineering. The goal of a Scrum was always to extend a system which had a model and code synchronized with the model. If the goal was new development, a small prototype system was created in the first week of a Scrum and this system was evolved. We demanded and were successful in using the OOAD tool to build the OOAD tool. Developers had to eat their own dog food which is a rare thing to find in the software industry.
Posted by Jeff Sutherland at 5:12 PM