Agile versus Waterfall

2014-09-30
by Ivan Gibbs

There has been a big emphasis on Agile versus Waterfall and how it can change one’s software for the better. Many of the people I have talked to think that this is a new idea. Though I will concede that the techniques employed by the current Agile trend are very new to me, the engineering idea is actually quite old in regards to focusing on iterations rather than on getting it all correct the first time around.

Recently, I was reading a book by Yourdon’s Classics in Software Engineering [1] from 1979. The last chapter references ’Structured Analysis and System Specification’ by Tom DeMarco [2]. Tom DeMarco was a key proponent of a software movement called structured analysis in the 1980s. I want to illustrate two sections from that article here.

Of course, the early understanding is always imperfect. But a careful and precise declaration of an imperfect understanding is the best tool for refinement and correction. The most important early product on the way to developing a good product is an imperfect version. The human mind is an iterative processor. It never does anything precisely right the first time. What it does consummately well is to make a slight improvement to a flawed product. This it can do again and again. The idea of developing a flawed early version and then refining and refining to make it right is a very old one. It is called engineering. What I am proposing is an engineering approach to analysis and to the user analyst interface. [1, pg. 420]

Here, we learn that DeMarco is promoting iterative development of the entire product phase. So, the core idea of iterative development is recognized here in 1979.

If we have learned anything over the past twenty years, it is that the concept of freezing specifications is one of the great pipe dreams of our profession. Change cannot be forestalled, only ignored. Ignoring change assures the building of a product that is out of date and unacceptable to the user. [1, pg. 421]

This quote really indicates that Waterfall was not being promoted and that it had some real downsides.

References

[1] E. N. Yourdon (Ed.), Classics in Software Engineering, Yourdon Press, Up- per Saddle River, NJ, USA, 1979.
[2] T. DeMarco, Structured Analysis and System Specification, Prentice Hall PTR, Upper Saddle River, NJ, USA, 1979.