Saturday, March 29, 2008

Attacks on the Accidental and Essential Properties of Software

Over the next several months I will be posting articles that discuss various aspects of software and the state of the industry. These will be titled as either attacks on the essential properties of software or the accidental properties of software as defined by Brooks in my post I first learned about Agile Development….

Brooks went on to provide a clearer definition of Accidental and Essential Properties in No Silver Bullet Refired (Chapter 17 of the Mythical Man Month).  In particular Brooks uses Dorothy Sayers definition of creativity:

instead I follow the English  dramatist, detective story writer, and theologian  Dorothy Sayers in seeing all creative activity to  consist of (1) the formulation of the conceptual  constructs, (2) implementation in real media, and  (3) interactivity with users in real uses.[6] The part  of software building I called essence is the mental  crafting of the conceptual construct; the part I  called accident is its implementation process.

The goal is to try to discuss the progress towards a silver bullet for software development. These are my thoughts on progress in the methodologies and tools to make developing software easier. These are things we are doing as an industry to attack the Essential properties of Software. There are also that are just white noise interesting, fun and useful, but in the end just attacks on the accidental properties of software and have no real impact on our ability to quickly create quality software that attacks the essence of building software, or as Brooks says:

I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation. We still make syntax errors, to be sure; but they are fuzz compared with the conceptual errors in most systems.

If this is true, building software will always be hard. There is inherently no silver bullet.

So lets look around for what we have done in the last twenty years to attack the essential properties of software and progress towards the silver bullet of software (from the essay No Silver Bullet written in 1986).

No comments: