Research software includes all software code (including scripts, applications, models, tools, algorithms, etc.) that is being used to produce research results, but also software code that is the research result in itself. In addition to making publications and data openly available, it is also common to make research software available for reuse.
FAIR research software
Although not all FAIR principles are directly applicable to research software, the philosophy remains the same:
- Your software should be findable by publishing it in a publicly accessible repository and assigning it a persistent identifier (for each version), for example a citable DOI.
- Rich metadata should be provided, as well as appropriate documentation.
- Publish your research software in one of the available software repositories to achieve findability, accessibility and reusability. This will also help you manage version control.
- In order to facilitate machine readability and data exchange, research software and its associated metadata should use a formal, accessible, shared and broadly applicable language.
- Software and its associated metadata are accessible using a standardized communications protocol that is open, free and universally implementable.
- Develop your software using standardized formats, protocols, and data structures to enhance its compatibility with other tools and systems. Here you can find a list of preferred formats that the Data Archiving and Networked Services (DANS) recommends.
- Software and its associated metadata should have independent, clear and accessible usage licenses compatible with the software dependencies.
More information can be found here.
There are several popular and well-regarded software repositories that researchers commonly use to host and share their research software. The choice of repository depends on factors such as the nature of your software, and your desired level of visibility and collaboration.
GitHub or GitLab (TU/e has its own GitLab server) are great tools for keeping track of the versions of your code as well as for making your code available for others. In addition, it is highly recommended to publish your code through Zenodo or 4TU.ResearchData. Both of these repositories allow setting up a connection to GitHub to make the code associated with research output public, and to make clear which version of the code you used. When publishing your code through Zenodo or 4TU.ResearchData, a DOIs is assigned to your software, making it citable and most importantly always findable. Check out this instruction on how to make your software citable in GitHub through Zenodo.