|
Dan Bricklin's Thoughts About Software As Long-Lived Infrastructure It is sometimes said that if civil engineers built bridges the way we build software, nobody would be able to drive more than a few miles without falling into a river. Of course, the art, science, craft and engineering practices of bridge-building have had several thousands of years of refinement; whereas software development has barely had fifty years. Our knowledge of spanning a distance, much of which was arrived at by trial-and-error, is now understood in terms of the basic forces of nature and the mathematical equations of classical physics; whereas our knowledge of software is still mostly in the trial-and-error stage. Also, even the most complex bridge design, has far fewer types of interactions between parts than even a modestly complex piece of software does; and the physical properties of the parts of a bridge are known, and the effects of their interactions can be mathematically predicted, and empirical testing can verify these properties; whereas software testing is in most cases not even as scientific a process as the programming itself. Dan Bricklin has written an interesting essay about what he calls Societal Infrastructure Software. He compares the durability of computer records to the durability of archival libraries. One can, routinely in many cases, look up records that are hundreds of years old and see them in their original condition. Nobody is really all that surprised by this, and yet hardly anybody expects to be able to find computer records in their original condition after more than a few years. We pretty much assume that our database records will either migrate to a new form, or even fall into the bit bucket all together, within a short time -- tens of years at most. Dan posits that the entire culture of software development has to change so that software that lasts 200 years can become a reality, and he sees open source as being part of that change. A very interesting read.
|