Via Slashdot comes this article in the Guardian that reinforces the points I made in my previous post: No One Peer-Reviews Scientific Software, Scientists are Not Software Engineers and Scientific Peer-Review is a Lightweight Process.
The article makes that same points that (1) there is little to no professional quality-control in the creation and maintenance of scientific software and (2) scientific software should be as open and scrutinized as scientific hardware.
This observation is especially important:
Computer code is also at the heart of a scientific issue. One of the key features of science is deniability: if you erect a theory and someone produces evidence that it is wrong, then it falls. This is how science works: by openness, by publishing minute details of an experiment, some mathematical equations or a simulation; by doing this you embrace deniability. This does not seem to have happened in climate research. Many researchers have refused to release their computer programs — even though they are still in existence and not subject to commercial agreements.
(Note: In this context, “deniability” means that the hypothesis or theory must be constructed so it can be proven wrong, i.e., that you can deny the truth of it.)
Scientific hypotheses differ from hypotheses in other fields specifically because scientific hypotheses can be conclusively proven wrong by experiment.
A scientific hypothesis becomes a theory only when the one experiment that could prove it wrong has been attempted repeatedly. Key to that repeatability is that all scientists understand the minute details of each attempt so that they can reproduce it exactly.
Keeping scientific software secret destroys reproducibility. If you have two or more programs whose internals are unknown, how do you know why they agree or disagree on their final outputs? Perhaps they disagree because one made an error the other did not or perhaps they agree because they both make the same error. You can never know if you have actually reproduced someone else’s work unless you know exactly how they got the answer they did.
There is no compelling reason to keep scientific software secret. In the case of science upon which we base public policy on whose outcomes the lives of millions may depend, such secrecy could be lethal.