There are various definitions of research software. The following two definitions are borrowed from “Defining Research Software: a controversial discussion” - the most recent and expansive discussion on what research software is, which was done under the auspices of the FAIR4RS RDA working group.
Inclusive definition of research software
- All code and software artefacts that are used, produced, or might be related to the research process in one or more stages of the research lifecycle and regardless of the layer of the software stack.
- Software that was not necessarily developed with the intention of being part of research, for example, a library for interfacing with a sensor, or software that ceased to be exclusive to the research domain, for example, certain programming languages developed in research projects, e.g., Python, Scala, R.
Exclusive definition of research software
- Well identified software that is part of the research discovery process, which might require specialised domain knowledge and is by itself a contribution to science and research.
- Software that was developed with the intention of being part of research.
The above two definitions offer two ends of a spectrum of what research software is. For some, the inclusive definition would be more correctly termed software in research whereas the exclusive definition would be termed research software.
Following this line of thought - not all software that is used in research is research software. Research software is software or code that is used to generate, process or analyse results of a research for publication. For example, software used to guide a telescope that is used to conduct scientific research is not considered research software. On the other hand, formulas or macros in spreadsheets used to analyse data are considered research code as they are a form of computer programming that allow one to create, calculate, and change data sets in a number of different ways.
The RSQKit does not mandate the definition of what research software is, however its authors and the Editorial Board may be opinionated on what they believe the definition is and this may vary over time and be reflected in the RSQKit pages. Since the focus of the RSQKit is to highlight quality practice, most of the advice (especially around computational tasks) could be applied to software in research. However, many of the best practices are found in research software and we hope the RSQKit helps promote the practices to other areas of research and allows cross-pollination of ideas and practice.