NFDI4Ing task area “Research software development”: advice and services for good software

The NFDI4Ing task area “Research Software Development” provides infrastructure, best practices and templates to make research software and its development more replicable and reproducible while improving the quality of the written code. Currently, main projects of the task area are a JupyterHub server for the NFDI4Ing-community, a knowledge base with best practices and examples for sustainable code development, and training courses for, e.g., GitLab.

Vision
Research software plays a fundamental role in the advance of science. Not only is every simulation based on code and the assumptions in the models therein, but also almost every measurement is evaluated using software. Therefore, the importance of functioning, quality-assured code and the effectiveness and effectivity of its development can hardly be over-emphasized. We envision a world in which every piece of code is well-tested, quality-assured and easily reusable.

Reusable Workflows and Best practices
As one of our services we are providing a knowledge base for software development that can be accessed at knowledge-base.nfdi4ing.de. There we not only provide a weekly consultation hour, but also various guides and “How-to”-articles on different topics related to research software development. The workflow proposed and the articles provided have been developed and proven useful in the CRC1194 at TU Darmstadt, and effectively combine version control, continuous integration, automatic testing and evaluation, including HPC-systems.

The knowledge base is an ongoing project, in which we are working together with participants in- and outside of NFDI4Ing.

Jupyter at your workstation
To support parallel code development and documentation, but also to make reproducing analyses easier, we have set up a JupyterHub that allows scientists to develop or reuse Jupyter notebooks. In these, code can be executed interactively and enriched with text, figures and more (literate programming).

We provide MATLAB (the normal IDE, but also a dedicated kernel) for academic usage and make polyglot notebooks possible, i.e., notebooks which contain more than one programming language.

The JupyterHub (https://jupyter.nfdi4ing.de) is freely accessible with a DFN-AAI login.

Tomislav Maric
Christian Bischof
Moritz Schwarzmeier
Anett Seeland

Tags

NFDI4ING services may be relevant to different users according to varying requirements. To support filtering or sorting, we added a tag system outlining which archetype, phase of the data lifecycle, or degree of maturity a service corresponds to. By clicking on one of the tags below, you can get an overview of all services aligned with each tag.

This service has the following tags:

The tags correspond to:
The Archetypes: Services relevant to Alex – Bespoke Experiments, Betty – Research Software Engineering, Caden – Provenance Tracking, Doris – High Performance Computing, Ellen – Complex Systems, Fiona – Data Re-Use and Enrichment

The data lifecycle: Services related to Informing & Planning, Organising & Processing, Describing & Documenting, Storing & Computing,
Finding & Re-Using, Learning & Teaching

The maturity of the service: Services sorted according to their maturity and status of their integration into the larger NFDI service landscape. For this we use the Integration Readiness Level (IRL), ranging from IRL0 (no specifications, strictly internal use) up to IRL4 (fully integrated in the German research data landscape and the EOSC). Click here for a diagram outlining all Integration Readiness Levels.