Keith W. Miller
The ETHICOMP 99 conference encourages us to “look to the future of the information society.” The information society of the future is being built on the software and data of today. Looking closely at the quality of software and data today does not reassure us about the future. In this paper we will explore technical and social issues that complicate improving software quality, and suggest practical steps that may improve the “materials” we will use to build the information society.
The Quality of Software
Software developers face a daunting task. Theoretically, the malleability of software allows us great flexibility. If a task can be described as symbol manipulation, chances are it can be done by a computer. But this flexibility is also a burden; there are so many ways to make mistakes. And no matter how difficult it is to achieve software perfection, it is even more difficult to verify that perfection has been reached.
Evidence of these difficulties abounds. Human – computer interfaces far too often confound and confuse us. Software failures are depressingly commonplace, so much so that the public is becoming complacent about poor software quality. We have learned to not trust programs, even though we rely on them for communications and for control. (Similar problems arise with the reliability of electronic information, but that is not the focus of this paper.)
Although we complain about these problems, we continue to buy software that vexes us. Much of the software we buy is relatively cheap, and we often get what we pay for: shoddy merchandise. Software comes not with a guarantee, but with a disclaimer. The building blocks of the information society are crumbling even as they placed into the foundation.
We do not accept this level of quality in many other things we buy. If an automobile is a “lemon,” we demand repair or replacement. Televisions and cameras have money-back guarantees. If a waiter brings us disappointing food, we send it back. Our attitude towards software seems oddly forgiving. There are economic as well as technical reasons for this attitude: perfect software is impossible to produce, so we expect frequent failures. Software is more mysterious than other commodities to most people. We often do not have great variety in the suppliers of software we want. There is not a tradition of software quality either in computer professionals or consumers. And we seem to be willing to buy low quality software as long as the initial price is sufficiently low. We assert that these reasons are not compelling, either ethically or economically.
A New Attitude for Software Consumers
We contend that a new attitude is in order. Software consumers should expect that software work more often. We should be willing to pay more for software, but only if it is more trustworthy. Finally, we should establish means for ascertaining software quality before we purchase it, not after we purchase it (by hard experience).
Consumer Attitudes Can Induce Changes in Developers’ Attitudes
Software consumers can encourage change by economic and regulatory means. As buyers, we can choose simpler programs (fewer “gee-whiz” features) when they are more reliable. We can reward software quality when we buy and use proven software instead of always “upgrading” to a more complex (and less reliable) version. We can sue software developers who misrepresent their products, and when gross negligence causes harm.
Regulations can be imposed that require developers to disclose the processes used to develop and test their software. Standardized protocols and reporting formats would enable software consumers to make informed choices that will favor developers who invest in testing and rigorous processes. Licensing and an emphasis on professional ethics could encourage software developers to resist short term economic pressure to release software prematurely. And the resulting status of computer professionals would allow them to insist on sufficient time and resources to do a responsible job developing software.
We cannot demand perfect software, but we should demand better software. The current state of commercial software is unethical, and our acceptance of this state is neither wise nor responsible. More informed buying and modest, practical regulations can change this situation for the better. The full paper will describe “software informed consent” as one way to encourage such change.