The author asserts that conventional software engineering has led to a software crisis: “computer programs can produce results that are unexpected, incorrect, and unexplainable.” He contends that AI will exacerbate this crisis by extending “the domain of problems addressed into that in which there is typically no complete specification of the problem, no clear-cut correct or incorrect answers, and a necessity for self-modification.”
So what else is new? I have spent (invested?) my career in information systems that deal with business processes and human interfaces that are constantly changing, are frequently inconsistent, and often illogical. Often my systems solve the user-specified problem only to introduce new situations more perplexing than those originally addressed. Such has always been the blessing/curse of technology? What would the Wright brothers think if they were stuck in an air traffic hold over O’Hare Field?
The author hopes that the use of the Specify:2WZProve:2WZImplement:2WZVerify (SPIV) paradigm will introduce formal methodology into the software engineering process. He seems somewhat surprised to find out that what we have instead is a Run:2WZUnderstand:2WZDebug:2WZEdit (RUDE) paradigm that in no way allows the neat closure envisioned by SPIV.
My view is limited, of course, but I have never seen formal proofs work with real-world problems of any size. The real world simply is too messy. Frankly, I am not sorry; I enjoy dealing with the resulting challenges. Nor does the knowledge, the certainty that technology causes new and different problems make me a Luddite. Technology has provided longer, healthy, more meaningful lives for many people and is justifiable on both economic and moral grounds. Besides, technology is fun.
Artificial intelligence is “just” one more type of technology; it probably will take us a few steps ahead, a step or two backwards, and, for sure, a few steps in directions unforeseen. I do not begrudge the author his search for the SPIV Holy Grail. I do not think he will find it, but the search itself is worth the cost and trouble, both to him and to society.
There is no crisis, or, more properly, no new crisis. We always have had and will have a crisis of some kind. Software engineers of all types, from product developers to information systems people, will continue to be happily RUDE, trying to improve the “horrible” software written by their predecessors (who may have been themselves), adapting to the ever-changing world. So it has always been and is always likely to be . . . and I think that is wonderful.