Classifying Research Software
With apologies to Borges, I believe that all research software can be classified as follows:
- That which works on the original author’s laptop.
- That whose only documentation is a 2009 conference poster.
- That which depends on a library that depends on a library that depends on Python 2.
- That which is included in this classification.
- That whose version number “final_FINAL_v3_revised_corrected” is accurate.
- That which produces subtly different results on Debian and Ubuntu for reasons no one has investigated.
- That which was written in Fortran and is therefore the most reliable of all.
- That which works correctly only when the input file contains an even number of lines.
- That which when run produce a single number which is cited in seventeen papers.
- That which would take less time to rewrite than to understand.
- That which has been rewritten four times and is still not finished.
- That whose unit tests that all pass because the tests were written to match the output.
- That whose output is so plausible its authors have not questioned its correctness.
- That which, from a distance, appear to be maintained.
See also this post.