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