This post originally appeared on the Software Carpentry website.
Regarding the idea of reproducible research, I stumbled over I-SPOC while looking through Google Summer of Code stuff. From their pitch:
The overall goal of this project is to build computational and social infrastructure to support the use of a new form of scientific communication called a SPOC (Scientific Paper with Open Communication). A SPOC combines a standard academic paper with open source computational models written in any publicly accessible computer language. SPOCs will (i) link computational results with the models that produce them, allowing independent verification and validation (ii) create incentives for cleaner, more transparent code and for the sharing of code (iii) enable others to extend and improve existing computational models and to verify model robustness (iv) bring computational models to life allowing faculty, students, and other scholars to see dynamic phenomena emerge and (v) have an enormous effect on the teaching of science.
The reality isn't (yet) as impressive as the vision, but it's still intriguing. I think there's some great work in requirements engineering waiting to be done here: is reproducibility both necessary and sufficient for scientists to regard their peers' computational work as science? If so, what must a tool do or provide in order to satisfy that need? If not, what are the requirements, and why?