Best Practices for Sustainable Software
in Natural Science and Engineering (SS-NES)
Sustainable software practices (software management, software quality, FAIR software, and software preservation) are crucial for the reusability and long-term viability of research software (scripts, code, tools, and digital methodologies) particularly in the Natural Sciences & Engineering (NES) domain.
How can I use best practices from SS-NES?
Guidance on sustainable software for the NES domain
A software management plan (SMP) aids in implementing best practices during software development and ensures the software remains accessible and reusable in both the short and longer term. It also contributes to the reproducibility of results and promotes collaborative work on open-source software for research. Moreover, an SMP encourages researchers to plan for the software’s long-term sustainability and community uptake of the software.
We created a the SMP decision tree to guide you through the process of creating an SMP.
Tools to support sustainable software development
Guidance for sustainable research development is crucial, but it is also important to provide means to make it practical and applicable during the whole development cycle. If such support is not readily available when the guidance is published, uptake by the community might be significantly delayed.
In this project, we developed research software templates that implement the best practices recommended by the guidance and provide boilerplate code and assets to initiate the research software development, including unit tests, documentation, etc. This will allow the researchers to apply the guidance in a much quicker and practical way by using different languages (e.g. Python, R).
Integrating digital infrastructure for sustainable software
The use of digital infrastructure and services can contribute to enhancing software sustainability, encompassing aspects such as version control, licensing, citation, publication, and long-term preservation. We have integrated and improved existing digital services relevant to the NES domain that support several aspects of software sustainability.
The 4TU.ResearchData repository aids researchers of the science, engineering and design disciplines with long-term archiving of software. 4TU.ResearchData is the only certified repository in the Netherlands that provides support for sharing and long-term preservation (at least 15 years) of both research data and software and for disciplines from the entire NES domain. The Research Software Directory is a registry developed by the eScience Center that enables both research performing organizations and researchers to find, publish, cite, share, and measure the impact of research software.
We will write a blog summarising this integration.
Learning resources for sustainable software development
We conducted a train-the-trainer workshops and walk-in sessions aimed at trainers, training coordinators and researchers within the NES domain and at LDCCs. Through these events we shared with participants our best practices for software sustainability in the NES domain.
Based on these activities we created training materials which can be used by the wider community.
Toolkit
Choose one of the tools below to guide your software to sustainability.
-
SMP Decision Tree
This is a questionnaire package for a Software Management Plan (SMP). This is an open source tool.
-
SS-NES-lesson
Training material of the software sustainability of the TDCC NES project. These materials are also available on GitHub.
-
Code-auditor
A package and command-line utility to audit code quality and compliance to the best practices.
-
Meta-template
A toolkit to start software templates for research software and adopt best practices on sustainable software for Natural and Engineering Sciences. It provides a way to align best practices and reduce maintainance efforts across organisations, while allowing organisation to customize software templates to their needs.
-
python-template
This is a copier Python software template that implements the best practices on sustainable software for researchers in Natural and Engineering Science. The template provides boilerplate code and assets to initiate the research software development, including unit tests, documentation, etc.