This time I want to talk about one of the most misunderstood, over-adopted methodologies in software development, and the man who inadvertently introduced us to it – Winston Royce.
Dr. Winston W. Royce (1929–1995) was a computer scientist, director at Lockheed Software Technology Center in Austin, Texas, and the man who described the Waterfall model for software development.
Agile, SCRUM, and XP were a response to the failures of traditional software design and development methodology commonly referred to as waterfall. How the waterfall methodology came to be used as the central software development method used by most companies is an interesting tale. In the 1970′s, the DOD (Department of Defense) was researching methods to handle software development to better report on where money and resources were being spent. A member of the team assigned to this task went to the Institute of Electrical and Electronics Engineers (IEEE), to look for articles on the subject. He found an article named “Managing the Development of Large Software Systems: Concepts and Techniques”. He opened the first diagram – a graph representing the waterfall method – titled “Implementation steps to develop a large computer program for delivery to a customer”. It was from this that the DOD established the Military Standard 2167 which used the waterfall graph as a template – without actually having read the article.
All the vendors that supported the DOD had to accept the new standard of developing software. NATO was also looking for a way to work with software and found the DOD had done a research project on the subject and they too adopted waterfall. Soon, the software industry also followed suit and before you knew it, everyone was working with this new method, called the Waterfall method.
Had they taken the time to actually read the article, they would have found that Dr. Royce goes into detail about why the waterfall method does not work. Namely, waterfall has testing and documentation at the end of the project. It assumes that all the preceding stages are accurate. It also assumes that the estimate of work is exact. We know, however, that when the schedule starts to slip, those things at the end of the project are done hastily or dropped. What’s at the end of the project? Testing and documentation.
For the next several decades the DOD recorded a 60-90% failure rate on software development projects. Eventually, they rescinded the Military Standard 2167.
For the rest of his life, Dr. Royce fought to clear his name. Below is a video that nicely illustrates what happened. Enjoy.