Jesse Poore, the University of Tennessee professor, is interviewed by ACM’s Ubiquity for his recent article in IEEE Computer, “A Tale of Three Disciplines… And a Revolution”. Poore talks about how if we made correct specifications, our software would work. While I agree that software should not fail as often as it does, I think that he misses the point about software not doing what the user wants it to do, which is simply a problem of needing to create and add-on, like with your house. You don’t know it until you live in it for awhile.
(Stewart Brand makes this point pretty well about buildings, and the same adaptivity should apply to software.)
Regardless, Poore makes a useful point. There’s no good reason why software should be as bad as it is, and testing should be to show how defect-free something is, not to catch errors.
Also of interest is his tale about Harlan Mills:
The way he told it to me, when Mills was an IBM Fellow he was touring a new fabrication facility that had “clean rooms” with only so many parts per million of contaminants, workers in bunny suits, airlocks, and so on. They were boasting about how high the quality was and how high the yield was. Then someone says, “It’s too bad you software guys can’t produce software of high quality.” Mills said, “If we spend as much money up front getting the design right as you guys do, and if we spend as much money on the process keeping impurities and errors out, as you do, we’ll have the same kind of quality and yield in software.”
Very interesting. I’m not sure that this is entirely accurate, simply because of the social nature of software, but it’s still worth us getting better at. Poore certainly knew what he was talking about. His credentials are long and strong.
Image credit: Belgian royal conservatory’s dome, interior with sun. © E. Forrest Christian. All rights reserved.