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 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
- 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 Git, and BitBucket. These can be used to expose software under development and in some cases (e.g. Git-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. If no licence is applied to software it is unclear if, and how, software may be reused by others. This can hinder collaboration, further development and reuse of the software. A number of licence types exist for software but be aware not all may be applicable in Australia. To facilitate reuse and research reproducibility apply the least restrictive licence possible.
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 a mission to “bring communities together to collaborate on the improvement of the social and technical environment for 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”. The ARDC is represented on the URSSI Advisory Board
- Software Sustainability Institute (UK) “cultivates better, more sustainable, research software to enable world-class research”.
- FORCE11 Software Citation Implementation Group builds on on the previous Software Citation Working Group, to support implementation of the software citation principles across the research and scholarly publication sectors. The ARDC are members of 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-chair the Interest Group.
- Research Data Alliance Software Source Code Identification Working Group aims to provide concrete recommendations for the identification of software. The ARDC are members of 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 contribute to WSSSPE workshops.
- Software Preservation Network was established to advance software preservation through collective action. Working Groups address issues such as training and education, metadata and technological infrastructure.
- The Carpentries is a community driven organisation that teaches foundational coding and data science skills to researchers worldwide. The ARDC contribute to lesson development and Advisory Boards.
- RSE Community of Practice AU-NZ which aims to raise awareness of the role of research software engineers in the research process and build a community of practice.
- Research Software Interest Group that brings together people working with research software that share an interest in software curation and citation.
- TechTalks are monthly community gatherings to showcase and discuss the technical side of Australia's research infrastructure.
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.
- FOSTER Open Science Training Toolkit
- Software Carpentry
- Top 10 FAIR Things for research 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
- Four simple recommendations to encourage best practices in research software
- Good enough practices in scientific computing