In Software That Lasts 200 Years, Dan Bricklin, creator of VisiCalc, points out how software isn’t serving society’s needs, because it’s built for the short term:
In accounting, common depreciation terms for software are 3 to 5 years; 10 at most. Contrast this to residential rental property which is depreciated over 27.5 years and water mains and brick walls which are depreciated over 60 years or more.
And it’s built for the short term, even though it’s often built to keep records:
Common records kept by governments include property ownership, citizenship and census information, and laws. Personal records include images (such as portraits) and birth, death, and genealogical information. General information kept by society includes knowledge and expression, and artifacts representative of culture. Again, the time frame for keeping such records is measured in decades or centuries. I can go to city hall and find out the details of ownership relating to my house going back to when it was built in the late 1800′s. “Family bible” records go back generations. The Boston Public Library, like many city libraries, has newspapers from over 200 years ago available on microfilm, and many from the last 150 years in the original paper form.
[...]
When it comes to moving ahead, most new software and hardware can only access the most recent or most popular old data. Old manuscripts created with old word processors, often archived on obsolete disk cartridges in obsolete backup formats, are almost impossible to retrieve, even though they are less than 25 years old. The companies that built the software and hardware are often long gone and the specifications lost. (If you are older than 30, contrast this to your own grade school compositions saved by your parents, or letters from their parents, still readable years later.)
According to Brickin, we need to start thinking about “Societal Infrastructure Software” — the software that keeps our societal records, controls and monitors our physical infrastructure (from traffic lights to generating plants) — the way we think about bridges, dams, and sewers:
Having every part of society need to be upgraded on a yearly or even tri-yearly basis is not feasible. Imagine if every traffic light and city hall record of deeds and permits needed to be upgraded or “patched” like today’s browsers or email programs. Needing every application to have a self-sustaining company with long-term management is not practical. How many of the software companies of 20 years ago are still around and maintaining their original products?
This means that we have to emphasize “robustness, testing, maintainability, ease of replacement, security, and verifiability” rather than “execution speed, memory constraints, data organization, flashy graphics, and algorithms for accomplishing this all.” We need standards bodies to publish best practices. We need softward “inspections” (the way we have building inspections). And we need public inquiries when projects fail.
Something to think about.