Schmuckbild: Eine Hand hält eine Lupe über eine digitale Codeschnittstelle, die Datenanalyse, Qualitätssicherung, Softwaretests und Fehlerbehebung symbolisiert.

Leitende Prinzipien der DFG bei der Entwicklung von Forschungssoftware

Forschungssoftware erfüllt in der digitalen Forschungspraxis wichtige Funktionen: Sie ermöglicht Forschung und Datennutzung sowie die Reproduzierbarkeit von wissenschaftlichen Ergebnissen. Mit der Veröffentlichung des Quellcodes einer Forschungssoftware wird auch die kreative und wissenschaftliche Entwicklungsarbeit sichtbar und verfügbar. Damit schafft Forschungssoftware wichtige Impulse, um Forschung voranzubringen sowie wissenschaftliche Kollaborationen und Netzwerke zu stärken. Vor dem Hintergrund der vielfältigen Einsatz- und Entwicklungsmöglichkeiten von Forschungssoftware in allen Wissenschaftsbereichen hinsichtlich der Entwicklung, Archivierung, Auffindbarkeit und Nachnutzung von Forschungssoftware weist die DFG mit diesen Prinzipien auf zentrale Aspekte hin, die bei der Planung von Forschungsprojekten reflektiert und beachtet werden sollen.

Grundsätzlich folgt der Einsatz und die (Weiter-)Entwicklung von Forschungssoftware den DFG-Leitlinien zur Sicherung guter wissenschaftlicher Praxis sowie den ethischen, rechtlichen, ökologischen und strukturellen Standards der DFG. Diese gilt es bei der (Weiter-)Entwicklung von Forschungssoftware über die eigentlichen Forschungsaufgaben hinaus zu beachten, beispielsweise beim verantwortlichen Umgang mit natürlichen Ressourcen in Bezug auf Nutzung von Rechenleistung oder Gerätebeschaffung (weiterführende Informationen: Nachhaltigkeit im Forschungsprozess c Chancengleichheit im DFG-Kontext).

Die folgenden, leitenden Prinzipien definieren zusätzlich Eckpunkte, die bei der (Weiter-)Entwicklung von Forschungssoftware als Hinweise und Orientierungshilfen im Forschungsprozess beachtet werden sollen. Sie gründen auf der Beobachtung, dass die (Weiter‑)Entwicklung von Forschungssoftware im Spannungsfeld zwischen Vielfalt an Anwendungsfällen und Forschungszielen sowie Standardisierungen im Softwareentwicklungsprozess stattfindet. Insbesondere die Orientierung an gemeinsamen, fachübergreifenden Standards bei der (Weiter-)Entwicklung von Forschungssoftware ermöglicht daher eine kooperative Anwendbarkeit und nachhaltige Nutzbarkeit von Forschungssoftware. Entsprechend soll sich der Umgang mit den leitenden Prinzipien in der Praxis auch am spezifischen Stand bzw. der Ausrichtung einer Forschungssoftware orientieren. 

(1) Softwareentwicklung und Standards

Die Entwicklung bzw. die Anwendung von Forschungssoftware soll Best-Practice-Standards der Softwareentwicklung befolgen. Diese Standards sind im Entwicklungsprozess abhängig vom Einsatz der Software (z. B. Simulation, Gerätesteuerung, Datenanalyse usw.). Unverzichtbarer Teil der Projektplanung ist daher, vorab sämtliche Schritte der Softwareentwicklung entlang fachüblicher Standards festzulegen, z. B. zu Anwendungsfall, Autorschaft, Versionierung, Lizenzierung, Nachnutzung, Sicherheit usw. Es sollen eindeutige Evaluations- und Entwicklungskriterien festgelegt werden, um einen agilen Entwicklungsprozess zu ermöglichen.

(2) Softwarequalität 

Eine angemessene Forschungssoftwarequalität ist eine wichtige Grundlage für die Entwicklung und Nutzung von Forschungssoftware in der Forschungspraxis. Über allgemeine Softwarequalitätskriterien im Bereich des Software-Engineerings hinaus sollte die Softwarequalität von Forschungssoftware anhand fachspezifischer Kriterien definiert werden. Neben den auf Forschungssoftware zugeschnittenen FAIR4RS-Prinzipien gibt es auch aus dem Bereich des Software Engineerings Rahmenwerke, die eine Qualitätsbeschreibung von (Forschungs-)Software erlauben (Testabdeckungskriterien, Analytische Qualitätssicherung, Schnittstellen- und Tutorial-Dokumentation). Qualitätsmaßstäbe für Forschungssoftware sollen sich deshalb auf diese übergeordneten Rahmenwerke beziehen. Dabei sind jene Rahmen zu bevorzugen, die es potenziell erlauben, Entwicklungsleistungen angemessen honorieren zu können.

(3) Zugänglichkeit und Dokumentation

Da der Einsatz und die Entwicklung von Forschungssoftware Teile des Forschungsprozesses sind, soll durch Zugänglichkeit und Dokumentation die Nachvollziehbarkeit von Forschungsergebnissen im methodischen Sinn sichergestellt werden. Die Zugänglichmachung von Forschungssoftware stellt ein wichtiges qualitätssicherndes Element des Forschungsprozesses dar, indem Forschungsmethoden nachvollzogen und die Erkenntnisüberprüfung gewährleistet werden kann. Quellcode, Workflows und Funktionsweise von Forschungssoftware sollen daher nachvollziehbar dokumentiert und zur Verfügung gestellt werden, um die Verifizierbarkeit und Reproduzierbarkeit im Forschungsprozess sicherzustellen.

(4) Zitierbarkeit und Nachnutzbarkeit

Die Entwicklung von Forschungssoftware soll neben dem Einsatz im eigenen Forschungsprozess die Nachnutzbarkeit in anderen Forschungsvorhaben ermöglichen. Im Rahmen von Forschungsprojekten soll geprüft werden, inwieweit (a) auf bestehende Forschungssoftware zurückgegriffen, diese (b) weiterentwickelt und verbessert werden kann oder (c) eine Neuentwicklung notwendig ist, die der Forschungscommunity zur weiteren Nutzung zur Verfügung gestellt wird. Bei der Nachnutzung bestehender Forschungssoftware sollen die Nutzungsrechte geprüft werden (in der Regel über die Lizenz). Damit die Nachnutzung (weiter-)entwickelter Forschungssoftware gelingt, soll auf größtmögliche maschinelle Auffindbarkeit und Offenheit der Lizenzierung für die wissenschaftliche Nutzung geachtet werden. 

(5) Softwarenachhaltigkeit 

Nachhaltigkeit von Forschungssoftware soll nicht nur durch ihre Zugänglichkeit sichergestellt werden, sondern auch durch Planungen zu Wartung, Pflege, funktioneller Weiterentwicklung, Auffindbarkeit und Interoperabilität. Um eine langfristige Nutzbarkeit von Forschungssoftware sicherzustellen, sollen Infrastrukturen und bestehende Repositorien zur nachhaltigen Sicherung von Forschungssoftware genutzt werden, aber auch Strukturen für eine aktive Beteiligung der Nutzungs- und Entwicklungs-Community etabliert werden. In manchen Fällen kann darüber hinaus die Erstellung von Konzepten zum Ende des Entwicklungsprozesses sinnvoll sein, um Ergebnisse, z. B. einzelne Software-Module, oder aktive Communities auf nachfolgende Forschungssoftware-Projekte zu übertragen.