Despite the evidence that I have presented in previous chapters pertaining to software development as a creative art form, there is an aspect of software development that is pure manufacturing. The immature, and at times non-existent software manufacturing processes that I encounter in organizations I consult with, constantly appalls me. I find this to be true in organizations of all sizes, despite the lip service that everyone pays to ISO 9000 and the Capability Maturity Model. Not that I am a big believer in heavyweight processes that force developers to produce more paper than work product, far from it. However, the cavalier manner in which most software is manufactured would make Henry Ford roll over in his grave.
Because even though I am a big believer in software as art, once the inspiration has been codified in silicon, automation needs to kick in, both to ensure quality and to protect our intellectual assets. Most developers understand the basics of how things should be done, but they are often not given the time to establish adequate factory processes. In addition, they are rarely given funds to buy the tools that they require, despite widespread evidence, anecdotal and otherwise, that there are tools available in the marketplace that could dramatically improve their productivity. Or worse yet, the tools have been purchased but have been permanently relegated to “shelfware”, since no one has time to learn how to use them.