Research Software Guidelines
Research software is developed most often by researchers with the intention to suppport their research activities and findings. It covers the whole scientific workflow including software development, process analysis and result generation. This does not only include software to generate, process or analyze scientific results, but also applications that are designed to support scientific workflows.
Sustainability means that the software you use today will be available and continue to be improved and supported in the future.
Both the use of software in science as well as its complexity are continuously increasing. A survey of the Software Sustainability Institute shows that a majority of the participating researchers think that their work would not be possible without the use of software [2]. Scientists develop, adapt and use research software to generate, process, analyze and visualize research results that are subsequently published in scientific journals. Therefore, the sustainability of research software in form of reproducibility as well as endurance and evolvability over time is of high significance. Consequently, scientific publications should include all the required components in order to enable the reproducibility of the published results. This in turn implies the availability of the software, its source code and the generated data to other researchers. Otherwise, neither the reproduction nor the traceability of results are not possible. In addtion, to ensure the reusability and evolvability of research software, it is essential that scientists strive for a high software quality by employing established best practices and tools from the software engineering community. These goals are also recognized by the DFG in the Guidelines for Safeguarding Good Research Practice [1].
The Suresoft Project considers the development of research software as an important scientific activity and provides these guidelines in order to facilitate the creation of a working environment that enables researchers to develop sustainable software. To ensure the development of sustainable research software, project stakeholders are encouraged to consider the following aspects:
- Ensure reusability of their research by publishing research software and its results in compliance with the FAIR Principles (Findable, Accessible, Interoperable, Reusable) [3].
- Provide their software as open source software with a suitable license if possible.
- Provide detailed documentation of the source code, its installation and usage.
- Provide self-contained environments along with software publications to ensure the reproducibility of results.
- Maintain a high software quality in order to support maintainability, reusability and extensibility by means of principles, patterns and practices as well as tools from the software engineering community.
- Value research software publications like regular scientific publications. To support the implementation of this policy, the Suresoft Project offers workshops and support in regard to best practices in software engineering and publications.