Geoff Chappell - Software Analyst
With the development of techniques for independent analysis of commercial software, those who buy software may be able to verify or disprove claims that the software’s manufacturer makes about the software, or they may be able to prove the existence of a defect whose existence the manufacturer denies, disclaims or ignores.
That software manufacturers get away with the latter, even routinely, is surely beyond dispute. Also not in doubt is that such impunity would simply not be tolerated by our society for any other consumer product. That it is tolerated for software is perhaps because defects in cars, planes, trains and even toasters can and do kill people, and software for the home or office is thankfully not vital. But it also may be that society has seen no choice: independent inspection is simply not thought achievable in practice.
Even if techniques for independent inspection of software are developed and refined, it seems likely that the work could never realistically be undertaken by the consumers themselves, nor even be instigated by any one or few of them. Consumers of software are naturally much too busy with the tasks that they hoped the software might help with, and the study of software is too intensive an exercise to be funded just from a consumer’s frustration that the software does not seem to behave quite as represented. Just as our society long ago relaxed the notion of caveat emptor instead of expecting all consumers to do their own chemical analysis of food or clothing, the day may come when regulators and watchdogs take some interest in acting on behalf of software consumers, at least to the extent of checking that representations by software manufacturers are credibly frank and open.
Note that with techniques of analysis that do not depend on access to the software’s source code, the manufacturer’s cooperation is not required. The consumer and his agents merely exercise a presumed right to examine the software, in whatever form the manufacturer supplies that software, to see if the software conforms to its manufacturer’s claims.