Utilising complex data assets with the right software
The effective use of continuously growing and increasing complex data assets brings an associated need for reliable and trustworthy software to deal with the volume and complexity. Data assets need robustness, reliability, and accessibility. Similarly, software and process assets need provenance, reliability, support, accessibility and transparency. Also, software needs to be recognised as a first class research output in the same way that data is now.
Read more about open, citable and sustainable software below, as well as:
- access best practice guides and learning materials
- find out how to ensure your research software is citable and reusable
- learn about international initiatives aiming to raise the profile of software as a first class research output.
What is sustainable research software?
According to Working Towards Sustainable Software For Science Practice and Experiences, “sustainable software has the capacity to endure such that it will continue to be available in the future, on new platforms, meeting new needs”. Another definition from the Society of Research Software Engineering 2018 conference, suggests that “sustainability [is] the condition that results when the work needed to keep software scientifically useful is undertaken”. But what does that mean in practice? A recent interview study with RSEs suggests that sustainable research software should have the following characteristics:
Characteristics of the software itself
Characteristics of the environment where software is developed and used
- Openly available
- Actively maintained
- Independent of infrastructure
This framework is high level, with a number of decisions, activities, processes and actions underpinning each characteristic: When to open up the software? Which licence to apply? Who will maintain documentation? How to manage versioning? Who’s paying?
Best practice for developing sustainable software
Broadly, the research software lifecycle includes acquiring and assembling resources (including funding and people) into teams and communities, using, developing and maintaining software. It also recognises contributions to and of software.
There are a number of best practice guides available that provide advice for working through all stages of this lifecycle such as:
- The Netherlands eScience Center's comprehensive Software Development Guide which includes a useful checklist for each stage of development.
- Common Lab Research Infrastructure for the Arts and Humanities (CLARIAH)'s Software Quality Guide that can be used by both software developers and software adopters to assess the quality and sustainability of software.
- The German Aerospace Centre's Software Engineering Guidelines to support sustainable software engineering in research.
These guides all have a Creative Commons licence applied so they can be adapted to suit different organisations and projects.
Publishing and reusing research software
Publishing research software makes it: citable and accessible which in turn supports scientific reproducibility and transparency, helps software developers gain appropriate credit for their work, and helps the community by enabling reuse of code and methods.
Importantly, it is increasingly required by funders, who want researchers to make their data and workflows open and by publishers who aim to improve replicability. See for an example, the PLOS materials and software sharing policy. In addition, The Australian Code for Responsible Conduct of Research and the associated soon-to-be published Guide to Data Management are explicitly inclusive of research software as an output of research that should be made publicly available for reuse. Compliance with the Code is a requirement for the receipt of funding by National Health and Medical Research Council (NHMRC) and Australian Research Council (ARC).
Repositories for software
Numerous repositories for software exist including widely used platforms such as GitHub, GitLab, and BitBucket. These can be used to expose software from development to deployment and in some cases (e.g. GitHub-Zenodo) offer a workflow to formally publish software with a DOI to enable citation. Research software published through institutional repositories can also be made discoverable through Research Data Australia with descriptive metadata syndicated to google and other search services to facilitate discovery and reuse.
Software papers and reproducible articles
A number of peer-reviewed journals accept submissions that are primarily about the software and not necessarily about new algorithms or new science. The Software Sustainability Institute maintains a list of titles from across numerous domains including Life Sciences, Humanities and Social Sciences, Engineering and Informatics as well as more general titles. Publishing a software paper in a peer-reviewed journal offers the same benefits as any other journal article - enabling recognition and credit for research outputs, opportunities for collaboration and reuse and the tracking of citation metrics.
A recent development is the ability to publish computationally reproducible articles in online journals. These enrich the traditional narrative of a research article with code, data and interactive figures that can be executed in the browser, downloaded and explored, giving readers a direct insight into the methods, algorithms and key data behind the published research.
Considerations when publishing or reusing research software
A software licence protects both software creators and reusers. Due to the way copyright law works in most of the world, freely available software without an explicitly declared licence is copyright by the author, all rights reserved. This can hinder collaboration, further development and reuse of the software. A number of licence types exist for software, when choosing a license you need to be aware of their requirements and implications. To facilitate reuse and research reproducibility apply the least restrictive licence possible. More information on the ARDC Software Citation page.
How the ARDC supports research software
The ARDC contributes to a number of community driven initiatives including national interest groups, meet-ups and communities of practice around research software. We also support a variety of international initiatives aimed at raising the profile of research software while promoting best practices for developing, publishing and curating research software.
- Research Software Alliance has the mission to “bring communities together to collaborate on the advancement of research software”. The ARDC is represented on the ReSA Steering Committee
- US Research Software Sustainability Institute is an NSF funded project with the goal of “developing a pathway to research software sustainability”.
- Software Sustainability Institute (UK) “cultivates better, more sustainable, research software to enable world-class research”.
- FORCE11 Software Citation Implementation Group builds on the previous Software Citation Working Group, to support implementation of the software citation principles across the research and scholarly publication sectors. The ARDC has members in the Interest Group.
- Research Data Alliance, Software Source Code Interest Group “provides a forum to discuss issues on management, sharing, discovery, archival and provenance of software source code. It will pay special attention to source code that generates research data and plays an important role in scientific publications”. The ARDC co-chaired the Interest Group from 2017 to 2020.
- Research Data Alliance, Software Source Code Identification Working Group aims to provide concrete recommendations for the identification of software. The ARDC has members in the Working Group.
- Research Data Alliance, CURE-FAIR Working group aims to establish standards-based guidelines for curating reproducible and FAIR data and code. The ARDC co-chairs the WG.
- The FAIR For Research Software Working Group (FAIR4RS WG) jointly convened by the Research Data Alliance, FORCE11 and Research Software Alliance. FAIR4RS WG will enable coordination of a range of existing community-led discussions on how to define. and effectively apply FAIR principles to research software, to achieve adoption of these principles. The ARDC has members in the Working Group.
- Working Towards Sustainable Software for Science: Practice and Experiences (WSSSPE) is “an international community-driven organisation that promotes sustainable research software by addressing challenges related to the full lifecycle of research software through shared learning and community action.” The ARDC contributes to WSSSPE workshops.
- Software Preservation Network was established to advance software preservation through collective action. SPN connects and engages the diverse communities of information and communication technology, cultural heritage preservation, law, public policy, social science, natural science, arts, and humanities organizations that create, use and curate software.
- The Carpentries is a community driven organisation that teaches foundational coding and data science skills to researchers worldwide. The ARDC contributes to lesson development and sits on Advisory Boards.
Your Research Software toolkit
We’ve put together a list of handy guides and tools to help you ensure you’re always up to date on best practices for working with research software.
- Good enough practices in scientific computing and Barely Sufficient Practices in Scientific Computing
- Software Carpentry
- Top 10 FAIR Things for research software
- Four simple recommendations to encourage best practices in research software (paper)
- Four Open Source Software Recommendations lesson
- Five Recommendations for FAIR software
- MOOC: Open Research Software and Open Source
- Open Science Training Handbook
- ESIP DMT Clearinghouse (search: software)
- John Hopkins University: Planning for software reproducibility and reuse
- FOSTER Open Science Training Toolkit (search: software)