Bullets are made from lead

After several years in the commercial world I returned to the ivory tower to help mentor students in software engineering at RMIT. These students were bright, intelligent and enthusiastic. Also, they were leading the way in a novel approach to teaching the art. One major thing stood out from their work - Agile was the future and waterfall was the past (and an almost dirty concept). They tried so hard to be fair to the waterfall model and tried to understand that it had some use, but I was left with the feeling that they really pitied anyone who used it at all, presumed that it would only be considered under duress and really felt that it had no place anywhere.

Let me be clear here this is not a rant against Agile nor a defence of waterfall, my issue is that as a profession we are selling a story of this replaces that because only new is best rather than a story of use this or that depending on what works best. The former is an easy story to sell, but the later is far more powerful in the long run.

Fredrick Brooks claims that there is still no silver bullet. I hope to shift our mindset from looking for one silver bullet that solves all our software problems to a less exciting but more practical position of we have many tools some better suited to some tasks than others and we need to enable our engineers to choose from a menu. If all our bullets are made from lead (Lead is a base metal - a cheap utilitarian material - that gets the job done) then we can select better for the task at hand.

OO as the Messiah



The coming of Agile is reminiscent of the appearance of Object Orientation over a decade ago.

It appears that for marketing purposes dominant paradigms need to slay their predecessors. Unfortunately, the message appears to be wider than the marketers intend. OO was presented as a replacement for procedural development, but somehow that managed to displace other programming paradigms including functional and logical programming.

The truth is that all these programming paradigms persist today and appear in different niches.

Waterfall as the Devil



Authors have already raised the issues that no-one ever really used the waterfall model (http://www.idinews.com/waterfall.html) and that the early articles describing the model were flawed due to typewriter formatting of the diagram (loops are hard to draw with a typewriter hence the “modified” model described in the text ended up being serialised in the diagram). However, partitioners accept that the concept of getting it so right that we only move forward in development is unrealistic.

The reality is that the waterfall model and Boehm’s spiral model are models. Models are an idealised, simplified, representation of the world. They are useful for thinking about the world and are not intended as a prescription - we need to distinguish methods which are intended for our direct use from the intellectual tools that help us understand the world and are designed to throw into stark relief the edges of a continuum.

The Morality Play needs to become a reality play



To make great partitioners we need a more nuanced message, one that encourages broad understanding of many methods and then lets the practitioner choose the most appropriate. Just as we teach children to appreciate that advertising exaggerates and may contain mere puffery, we need to help beginning practitioners move past the simple marketing of message of “new is better, replace the old” to look at the situation and evaluate what we have to do and what we have to do it with.

Arming our new practitioners with a wider set of tools and enabling them to make better choices is actually tough in an already crowded curriculum, but until we do so our profession risks being ham strung by becoming a mono culture.

Unintended consequences



Agile is an answer, but not the only answer to all problems1.

An unintended consequence of marketing in the driving seat by allowing them to dispose of past methods is the creation of a view in the outside world of a “use-by date” on practitioners - as they become outmoded with the advent of new technologies - this may help sell new stuff but both harms past and future practitioners and looses and devalues existing knowledge2. People setting out in our profession deserve the knowledge of multiple techniques, to be equipped to learn and evaluate the next big thing; and a clear message about their continued future value.

Conclusion



Finally, there may be no silver bullet, but we do a better job when we are allowed to use more than one bullet to slay the mythical beast.



1. nor will its successor - whatever that turns out to be.
2. often hard won, highly relevant to the problem, existing knowledge.