Research software is a fundamental part of research. As with other research outputs, there are good reasons for preserving software and making it available for future use. The benefits of preserving and sharing research software include:
Many funding bodies and journal publishers now expect software that supports research findings to be made publicly available upon publication.
A source code repository is an online service that supports version control and other software development tools such as file hosting, bug tracking and issue tracking. Popular code repositories include GitHub, BitBucket and GitLab. Hosted services are especially useful for working with collaborators across more than one institution.
Software documentation provides essential contextual information which describes the software and tells others how the software was created, how it operates and how it can be used. Software documentation can be embedded in the source code or included in written texts that accompany the software. As a minimum, you should include a README file with your software.
A README file typically contains information such as:
GitHub will automatically display the content of a file named README on your repository's top-level page. Consider using Markdown syntax for your README file, since GitHub will format this in a manner that makes it more readable and accessible.
Every GitHub repository includes a wiki which can also be used to add descriptive information about your software. For help creating a README file and a wiki for software projects in GitHub see Documenting your projects on GitHub.
Code hosting services such as GitHub, BitBucket or GitLab are not suitable for archiving software. If you have software that supports published findings, is needed to reproduce or replicate research results, or has potential for use in future research, we recommend archiving a copy with a data repository such as ORDO (Open Research Data Online - the OU's research data repository). As well as ensuring long-term preservation and access to the software, ORDO assigns DOIs (Digital Object Identifiers) to software outputs, making it easier to cite and track specific versions of your software.
ORDO has an integration to support the automated deposit of software from GitHub. For further information see How to connect ORDO with your GitHub account.
For additional support from the Software Sustainability Institute see Software deposit: Where to deposit software.
A software licence is an agreement between a developer and user which provides a set of conditions for the use and distribution of software. An open source licence alllows users to use, copy, modify and redistribute the software providing that credit is given to the author. Because open source licences place minimal restrictions on how others can use software outputs, they are an important tool for making software accessible and resusable.
When you deposit your software in a respository you will typically be given the option of choosing a licence. Some popular examples of open source licences for software are Apache 2.0, GNU General Public License (GPL) and MIT. These are all available to choose from when uploading software to ORDO.
A comprehensive list of open source licences with detailed information for each licence is available from the Open Source Initiative's web page: Licenses and Standards.
If you are planning to modify and/or redistribute someone else's code, check to make sure that this is compatible with the permissions granted under the original licence.
Open source licences are unlikely to be appropriate for software that are subject to contractual restrictions set by third parties or where the intellectual property rights (IP) for the software are owned by the Open University and have potential for commercialisation. The Open University's Research Intellectual Property Policy and Commercialisation Handbook (which contains further guidance on IP, knowledge exchange, material transfer agreements and non-disclosure agreements) is available from the Research, Enterprise and Scholarship intranet pages. For further help and advice on Intellectual Property, please contact the RES Enterprise team.
Research software should be given the same importance as any other research output and considered citable in the same way as an article or monograph.
If you are making your software publicly available via ORDO or another research data repository, you can encourage others to cite your software by including a recommended citation in your README file or by including a CITATION file. If the software supports published findings, you should also include a recommended citation to the published paper. This can be added to the data access statement.
If you have used somone else's software in your research project you should include a citation in your published paper. This could be in the acknowledgements, footnotes, methods section or appendices, depending on publisher requirements. It is not necessary to ackowledge all the software used. The Software Sustainability Institute recommend citation only if the software played a critical role in your research and made a novel contribution.
The Australian National Data Service (ANDS) recommend using these core citation elements:
Author, Publication, Year, Title, Version, Publisher, Resource type (Software), Identifier (e.g. DOI)
Example:
Xu, C., & Christoffersen, B. (2017). The Functionally-Assembled Terrestrial Ecosystem Simulator Version 1. Los Alamos National Laboratory (LANL), Los Alamos, NM (United States). [Software]. https://doi.org/10.11578/dc.20171025.1962
Some publishers and software providers have also published guidelines for software citation. Examples can be found on the Software Sustainability Institute's webpage How to cite software.
Publish a software paper
In addition to making your software publicly available you might also consider publishing a paper describing your software. Journals which specialise on publishing peer reviewed software papers include:
For a more detailed list of journals whichb accept software papers, see the Software Sustainability Institute's web guide In which journals should I publish sofware?
Research software is now being understood as a type of digital object to which the FAIR Guiding Principles (Findable, Accessible, Interoperable and Reusable) should be applied. The reflects the maturation of the research community to better understand the crucial role of FAIR research software in maximising research value. The FAIR for Research Software (FAIR4RS) Working Group has adapted the FAIR Guiding Principles to create the FAIR Principles for Research Software (FAIR4RS Principles), published in 2022, which sets out the principles and provides examples of how they cab applied to different types of research software. By following the guidance above, you will already be going some way in making your research software FAIR.
The Software Sustainability Institute website provides comprehensive guidance and links to resources, See in particular their Guides for Researchers and Guides for Developers.
Adapted with permission from Imperial College London's guidance on Making research software open and shareable.