Dan Bricklin has a great essay on his site today titled Software That Lasts 200 Years. Dan is indubitably one of the world’s great software visionaries and his thoughts are always worth reading.
This essay was especially poignant for me since the first significant custom software application I wrote is still in use today. I wrote the Bellflower Dental System (a patient management, scheduling, and insurance billing system) for a large dental practice in 1985 and deployed it in 1987 (amazingly, their phone number is the same as it was in 1985, except the area code has changed from 310 to 562). Bellflower Dental Group is a large practice (at the time, they had over 50,000 patients) and the system was incredibly complex. My first company – Feld Technologies – continued to do work on it through 1993 when I sold the company to AmeriData. AmeriData continued to support the application until I left in 1995 since by that time I was pretty much the only person around that could modify the software without breaking everything. Once a year, until about 1999, I got a call from my friends at Bellflower and made a trip out there to tune things up. In 1999, we had to modify a bunch of the system for the year 2000 bug (yes – we had it everywhere – who would have thought that this would still be working 15 years later in 1985). I hired Dave Jilk – who was my partner in Feld Technologies and between gigs – to do this since I simply didn’t have time to do it. After this experience, we finally hooked them up with some local consultants that knew DataFlex – the language the system was written in (amazingly DataFlex – is still around today) and the software – as far as I know – has continued to work. Twenty years is a long time for any software system – especially the first one I actually created.
Now – a dental billing system is not an example of what Dan calls Societal Infrastructure Software (SIS), but it is an example of Software Durability, which is one of the tenants of Societal Infrastructure Software. In his essay Dan states, “We need to start thinking about software in a way more like how we think about building bridges, dams, and sewers. What we build must last for generations without total rebuilding. This requires new thinking and new ways of organizing development. This is especially important for governments of all sizes as well as for established, ongoing businesses and institutions.”
Dan’s argument for the need for Societal Infrastructure Software includes:
- Meet the functional requirements of the task.
- Robustness and long-term stability and security.
- Transparency to determine when changes are needed and that undesired functions are not being performed.
- Verifiable trustworthiness of all three of the above.
- Ease and low cost of training for effective use.
- Ease and low cost of maintenance.
- Minimization of maintenance.
- Ease and low cost of modification.
- Ease of replacement.
- Compatibility and ease of integration with other applications.
- Long-term availability of individuals able to train, maintain, modify, determine need for changes, etc.
Dan uses the analog analog of civil engineering in his essay. The first formal computer science classes I took at MIT was Course 1.00: Introduction to Computers and Engineering Problem Solving so the analog struck close to home. Dan is clear that these ideas are only for one part of the software world. He specifically is responding to his thoughts as a result of writings and actions of the Massachusetts State Executive Office for Administration and Finance as it deals with its Information Technology needs.
The essay is definitely worth reading if you are in the software industry.