[ ] It’s been a huge controversy and a long, long discussion… So back in the extremely early days of software, going back into the 1950’s or the 1960’s, there was no standard process for doing software. Nobody knew what the heck to do. The programmers at the time were generally older people; they were in their 30’s or 40’s or 50’s, because there were no universities teaching software in those days, so they hired mathematicians and engineers and other people to do software, and these guys were older… And they very quickly adopted a style which today we would squint and call Agile, but in those days they didn’t call it anything at all; it was just kind of the way they worked.

They worked in short cycles, and they verified the outcome of those short cycles on a regular basis, and they wrote tests, and so on. One example of that is the programmers who wrote the code for the Mercury space capsule, who worked in cycles that were one day long. They wrote their unit tests in the morning and they made them pass in the afternoon. That’s just one example of how the style started to enter into software.

Then in the 1970’s (early ‘70s) there was this event. First of all, there were suddenly university programs that were graduating computer science graduates, and a flood of 20-somethings poured into the industry, mostly male, by the way, for some reason that we’re still trying to figure out… And this flood of testosterone-laden 20-somethings poured into the industry, and I think the management at large thought “We’ve gotta get some control of these boys…” And right about that time a fellow by the name of Winston Royce wrote a paper. The paper was called “Managing large-scale software systems.” I think that was it; something like that. And in this paper he drew the standard waterfall picture - “We’re gonna do analysis, and then design, and then implementation, and then testing…” And he drew it with those nice little boxes, with the arrows flowing down, so it looked like a waterfall.

He wrote this paper in an attempt to tell people that this is probably a really bad idea, because nobody can actually do these phases in that order. The paper is a fascinating reading, if you ever read it.

Apparently, people did not read the paper, they just looked at that first image… And the first image was of the waterfall, and everybody said “Yeah, that makes perfect sense.” And for some reason, for the next 30 years that was the model that dominated us. It got put into all kinds of process documents in the military, and in industry, and I remember - I was a young programmer at the time; perhaps I was 18 or 19 years old - seeing the articles in the trade journals come out about this idea that you could do the analysis first, and then when the analysis was done, you could do the design. And then when the design was done, you could do the implementation, and you could put dates on those events. And I thought “Oh, this is a godsend. This is wonderful!”