Quality assurance in the development of research software

Guideline 7 requires researchers to ensure quality throughout the entire research process – comprehensively and across all phases. The development, programming and use of research software are of particular importance here. The DFG defines research software as software that is created during the research process or for a research purpose, including such elements as source code, scripts and executable files. Its purposes include the collection, analysis, simulation, processing, presentation or use of observational and measurement data, digitised texts, images, films, audio sources, objects etc.; the software may also be used to generate scientific models, control scientific instrumentation or optimise procedures.

The individual software solutions needed to address research questions are as specific as the questions themselves, and solutions are often used that are developed especially for the project at hand. The DFG has established five guiding principles to ensure the quality of research software development:

  1. Software development and standards: Software development should follow best practice standards and define all development steps in advance (authorship, versioning, licensing, etc.).
  2. Software quality: In addition to general software engineering standards, subject-specific quality criteria should be defined that are aligned with the FAIR principles for research software (FAIR4RS principles) and established quality frameworks.
  3. Accessibility and documentation: Source code, workflows, and functionality must be clearly documented and made available so as to ensure verifiability and reproducibility.
  4. Citeability and reusability: Research software should be developed in a way that enables reuse for other research projects. In the case of newly developed software, the focus should be on maximum machine findability and open licensing.
  5. Software sustainability: Sustainability should be ensured based on plans for maintenance and functional development, as well as through the use of infrastructures/repositories and the establishment of active communities.

Effective quality assurance in research software development generally includes software documentation, version management, persistent identifiers, metadata, a licence, and also additional elements, depending on the type of research software.


 

See also

Handling of Research Software in the DFG’s Funding Activities(externer Link)

Barker, Chue Hong, Katz et al. (2022): Introducing the FAIR Principles for research software(externer Link)

Anzt H, Bach F, Druskat S et al. An environment for sustainable research software in Germa-ny and beyond: current state, open challenges, and call for action. F1000Research 2021, 9:295(externer Link)