10. Models are better than text.
I would like to think that by this point in time, this principle nolonger requires justification. It has been at least a few years since Ilast saw a dense “SRD” or “SDD” document (SYSTEM REQUIREMENTS DOCUMENT,SYSTEM DESIGN DOCUMENT). I must offer my respect to the many talentedpeople who labored to produce these documents over the decades; thesedocuments were at least a step up from no Requirements or Designartifacts at all.
Consider what a ‘model’ really is in general; it is a representationof a finished product in a scaled down version; engineers have beenliterally creating models of what they are going to build forcenturies, for such reasons as testing out problems on a small scale,and for presenting a view of the end result to whomever may be payingfor it.
At this point, though, let us abandon any other aspect of physicalengineering as an analogy for Information Systems development. Softwareis different; while tools and bridges and buildings have been createdto either extend or protect the physical capabilities of human beings,Information Systems are created to extend the our mental capabilities,to help our thinking.
Given that, software can still be engineered, but it is a differenttype of Engineering. Software or Information Engineering has existed asa known concept since the 1970’s, although anyone who thought to callthemselves a software engineer usually incurred the wrath, or at leastdisdain, of the established Engineering Disciplines and Schools. I amnot an engineer, would not claim to be one, but my understanding isthat traditional engineering is addressing software within itsdisciplines. In the future, as software becomes even more critical toour well-being and safety, it may be that those who design and createsoftware will have to be accredited engineers, just like the ones whodesign and build bridges. I think history shows that quite a few earlybridges and other structures were prone to collapse before engineeringprinciples started to prevent it. Software is only a half-century old,so even in the age of internet speed and high change, more time will beneeded to bring software in line with other long time products.
In the meantime, it should be a goal all of us in the IT business toadopt useful aspects of engineering to improve the quality of software,and modeling is a key concept to adopt. It almost frightens me thatmany still promote programming as an art form, that code can bebeautiful or exquisite in some way. Well, even the most obscure artneeds an audience to appreciate it, and it can’t just be other artists.Software is a product to be used, not admired, so if anything,programmers of the past 50 years have been more like craftsmen, usingindividual skills and experience to produce useful ‘objects’ forsociety to use. The problem is that demand continues to out-stripprogrammer output (remember the backlog!), so improved, repeatable andtransferable methods are needed to transform software development froma craft to a true industry.