Software has to be useful, not perfect
I don't believe it is necessarily the fault of the computer or software industry. I don't, for instance, believe that companies create bugs on purpose, or that they do a bad job of building hardware and developing software. What I put all of the vagaries down to is the conditions under which these enterprises are conducted; specifically, the rush to market that characterizes the efforts of these companies.
What this leads to, of course, is software that is much "bigger" than it needs to be in terms of resources demanded from the computer system (memory, speed, space on hard drives), and so complex that it is virtually impossible for the developers to fully test all of the circumstances under which the product and its many features will work.
This testing is not easy; in fact, it is time-consuming and costly, but it is the only way to discover what combination of keystrokes or multiple program uses would cause failure, or worse, some negative result that harms the system or other software loads. In fact, research has shown that many of the disasters that we read about in the newspaper-specifically, things that relate to airplane crashes, medical mishaps and chemical plant leaks-are mostly traceable to human beings relying on computers. It is often determined that the software controlling those devices was not able to determine what the correct course of action was, and thus, gave an incorrect response. This incorrect response, being relied upon by a fallible human being, resulted in disaster.States vs. software
Now, as negative as all of this sounds, I've recently read news reports about state governments' difficulties in implementing programs to replace those formerly administered by the federal government, in which the states' inability to perform was blamed on computer software. In a recent report, it appears that one state government had taken over the administration of several programs previously led by federal authorities. These efforts had previously used a lot of "people" resources in a system that was mostly using manual bookkeeping operations, and the state decided that it would have to computerize this program to increase its ability to serve its constituents.
The reporter who wrote this story noted that the state government had spent several years and many dollars trying to get this system computerized, but had been unable to do so.
This delay in converting to a computerized system is being criticized by the people who most desperately depend on this program for help. In defense of the delay, the spokesman for the state government said that it had been unable to get the computer software up and running to handle this program. He went on to say that it was a software program that required a massive amount of demographic data; that it was such a complex set of factors that no programmer was able to get the software working yet. State officials also admitted that in writing the program, they were paying many millions of dollars to software developers to write usable code.
As it happens, I heard another report not long thereafter from a totally different state in which fundamentally the same comments were made. The gist was that a program could not be completed, because the state or local government was unable to computerize the system-it couldn't find a program that was capable of handling the pertinent data.It's not life-and-death
I'm afraid that I must protest. Not withstanding the criticism that is regularly heaped upon the software industry, the fact is that there are literally hundreds (perhaps thousands) of commercially available programs that work just fine for business entities all over the world. Many of these businesses need software to handle complex combinations of data that are very similar to the needs of our local government agencies. The fact that people who need to manufacture and sell products can find, install and use software of this type, while a state agency can't, is a puzzle to me. One issue that someone will surely bring up is that a company making and selling widgets can tolerate a small number of incorrect computer actions, so long as a software program mostly does what needs to be done. After all, there's no real harm in losing a couple of extra widgets every quarter or so. In the world of welfare or public assistance, it is argued, one cannot use a program that might miss some deserving soul.
This sounds very nice, and it no doubt gives good cover to politicians, but the facts are that many people (both deserving and otherwise) are missed or mishandled by the existing system, and it does not take a genius to figure out that if most of the needs of the community could be handled while the effort to de-bug was underway, then this effort could be deemed more humane.
There is a lesson for all of us in here somewhere. If software is controlling an airplane, a nuclear power plant, an X-ray machine, or the like, then by all means, test the hell out of it. And then, don't trust it until you have more proof of its perfection. But in matters which are not life-and-death, less than perfect systems can and do serve a valid cause.
Contact Wendell Bailey at: firstname.lastname@example.org