Zeeya Merali makes an excellent point in her recent article for Nature Why Scientific Computing Does Not Compute.” (Nature, 467, 775; October 14, 2010) :

As a general rule, researchers do not test or document their programs rigorously, and they rarely release their codes, making it almost impossible to reproduce and verify published results generated by scientific software, say computer scientists. At best, poorly written programs cause researchers such as Harry to waste valuable time and energy. But the coding problems can sometimes cause substantial harm, and have forced some scientists to retract papers.

Her suggestions make a lot of sense, though I know plenty of code gets written that does not follow them:

  1. use a version control system
  2. track your materials, i.e., exactly what software and data were used to produce a given result
  3. write testable software
  4. test the software
  5. share the software

It is clear that scientists need more training/advice on software than they currently receive. The online Software Carpentry course and materials were also mentioned as a model for solving this problem.

Link via Bruce Berriman’s Astronomy Computing Today site.