In this blog post, Konrad Hinsen lists four essential things a computation must allow before it can be called “reproducible”.
These four high-level requirements may be mostly non-controversial, but Konrad shows that they have far-reaching, often underestimated, implications.
Of particular interest to me is how these criteria effectively rule out techniques like opaque binary images (like Docker images) and service-as-a-software-substitute (like mybinder.org).