Der Softwaremanagementplan
(Forschungs-)Software effizient managen
Ein Softwaremanagementplan (SMP) beinhaltet allgemeine und technische Informationen zum Softwareprojekt, Angaben zur Qualitätssicherung, zum Release und zur öffentlichen Verfügbarkeit sowie rechtliche und ethische Aspekte, die die Software betreffen.
Der SMP fasst Informationen zusammen, die die Erstellung, Dokumentation, Speicherung, Versionierung, Lizenzierung, Archivierung und/oder Veröffentlichung der in einem Projekt erzeugten oder verwendeten Software hinreichend beschreiben und dokumentieren. Dazugehörige Hardware und notwendige andere Ressourcen, aber auch damit verbundene weitere Software und Softwarebibliotheken, Text- und Datenpublikationen sind ebenfalls zu beschreiben und stellen eine Besonderheit des SMP dar.
Zweck eines SMPs ist zunächst die Nachvollziehbarkeit sowie ggf. die langfristige Nutzbarkeit der Software (zur direkten Anwendung sowie zur Weiterverarbeitung) zu unterstützen und den Support der Nutzer:innen bei Rückfragen zu erleichtern. Der SMP dient folglich auch der Qualitätssicherung (vgl. hierzu FAIR4RS Principles).
Der SMP kann in Verbindung zu einem oder mehreren Datenmanagementplänen (DMP) stehen, falls die Software zur Datengenerierung oder -verarbeitung genutzt wird. SMP und DMP können als Output-Pläne zusammengefasst werden (vgl. Software Sustainability Institute).
Die Inhalte eines Softwaremanagementplans können je nach Projekt variieren, umfassen in der Regel aber folgende Abschnitte:
Bestandteile eines Softwaremangementplans im Überblick
Der Nutzen eines Softwaremanagementplans
Vorteile des SMP gegenüber DMP
- Höheres Verständnis der Software-Entwicklung als kooperatives Projekt
- Höheres Produktzentrierung der Software-Entwicklung
Homogenisierung der Software
- Vergleichbarkeit
- Nachnutzung von Software-Modulen
- Verbreitung guter Kodierungspraktiken
Mehrwert für die Forschung (Element)
- Nachvollziehbarkeit
- Nachnutzbarkeit
Qualitätssicherung
- Ergänzt/verbessert Dokumentation zugunsten eines Peer Review und zur Nachnutzung
- Ermöglicht frühzeitige Prüfung der Software- und Hardwarekomponenten
- Einhaltung der FAIR4RS Principles
Beratung
- Hintergrundinformationen
- Frühzeitige Erkennung von Schwachstellen (geplante Verwendung proprietärer oder fragewürdiger Bibliotheken...)
- Kostenkontrolle
Kostenfrei SMPs erstellen
Softwaremanagementpläne können in den kostenfreien DMP-Tools DMPonline und RDMO anhand eines speziellen Templates bzw. Fragenkatalogs erstellt werden. Darüber hinaus existiert ein DOCX- und Markdown-Template des Software Sustainability Institutes. Für die Erstellung eines SMP eignet sich des Weiteren ein GitHub- oder GitLab-Wiki, um Planung und Umsetzung in einer Anwendung zu dokumentieren.
Anforderungen der Forschungsförderer an Forschungssoftware
Deutsche Forschungsgemeinschaft (DFG)
- SMP ist nicht notwendig
- Kodex Leitlinie 13 „Herstellung von öffentlichem Zugang zu Forschungsergebnissen“: „die eingesetzte Software verfügbar zu machen und Arbeitsabläufe umfänglich darzulegen. Selbst programmierte Software wird unter Angabe des Quellcodes öffentlich zugänglich gemacht.“
European Research Council (ERC)
- SMP ist nicht notwendig
- Aber Software wird meist zusammen mit Daten im „Information for ERC grantees“ (v4.1) genannt
Horizon Europe
- SMP ist nicht notwendig
- Software wird im General Model Grant Agreement (v1.1) kaum explizit erwähnt
- aber: „the beneficiaries must provide (digital or physical) access to data or other results needed for validation of the conclusions of scientific publications, to the extent that their legitimate interests or constraints are safeguarded“ S. 112
VolkswagenStiftung
- SMP ist nicht notwendig
- aber Software findet Erwähnung in der Open Science-Policy:
- „Software [ist] kein ,Beiprodukt‘, sondern integraler Bestandteil von Forschung“ S. 5
- „Antragstellung ist im CV des Antragstellenden Open-Source-Software gesondert für den Begutachtungs- und Entscheidungsprozess auszuweisen.“ S. 6
Bundesministerium für Bildung und Forschung (BMBF)
- keine dezidierten Anforderungen zu Software
Softwaremanagementplan-FAQ
Wann ist ein SMP notwendig? Welche Projektgröße erfordert einen SMP?
Ein SMP ist nicht immer zwingend erforderlich oder notwendig. Zunächst sollten die Anforderungen des Forschungsförderers geprüft werden. Je nach Projektumfang kann es aber sehr sinnvoll sein, einen Softwaremanagementplan zu verfassen und kontinuierlich zu pflegen, z. B. wenn die Software der primäre Projektoutput ist. Als Leitfaden kann die Klassifikation des DLR dienen (siehe S.7): Anwendungsklassen 0-1 - kein SMP, Anwendungsklassen 2-3 - SMP empfohlen.
Gibt es Vorlagen zum Schreiben von Softwaremanagementplänen?
Ja, verschiedene Institutionen und Communities bieten mittlerweile SMP-Vorlagen an, z.B. RDMO oder Elixir. Interessant ist hierbei auch die SMP-Handreichung aus den Niederlanden.
Wie verfasst man einen realistischen SMP und wie setzt man einen SMP um?
Ein SMP sollte möglichst realistisch formuliert sein und keine Versprechungen machen, die nicht eingehalten werden können. Ein Konsens in der Projektgruppe ist daher anzustreben. Die Verwendung von Templates ist empfehlenswert, um relevante Themen zu prüfen. Die Umsetzung des SMP sollte analog zum DMP von regelmäßigen Aktualisierungen begleitet werden, um Veränderungen sichtbar zu machen (SMP als Living Document).
Welches Ticketsystem wird empfohlen?
Die Auswahl des Ticketsystems hängt vom Umfang des Projekts ab. Es existieren sowohl eigenständige Lösungen als auch integrierte Ticketsysteme in größeren Software-Paketen. Mit dem Fokus auf die Software-Entwicklung bieten GitLab und GitHub bereits passende Ticketsysteme an, die mit Schritten bei der Software-Entwicklung verknüpft werden können.
Welches Versionierungssystem wird empfohlen?
Die Versionierung bei der Arbeit mit Softwarecode ist ratsam. Für die Versionierung bieten sich Software-Lösungen wie GitLab, GitHub, Codeberg, BitBucket etc. an. Häufig werden diese bereits von der eigenen Institution oder als föderierte Infrastruktur angeboten.
Welches Repositorium kann man zum Veröffentlichen von Forschungssoftware verwenden?
Je nach Anwendungsfall kann die Software offen beispielsweise über GitLab, GitHub, Codeberg, CodeOcean oder BitBucket zugänglich gemacht werden. Datenrepositorien können sich auch für die Veröffentlichung von Forschungssoftware eignen. Teilweise existieren schon geeignete Schnittstellen, sodass beispielsweise über eine GitHub Action automatisch ein neuer Release auf Zenodo veröffentlicht werden kann.
Literatur
Papier: „Sicherstellung der Reproduzierbarkeit von Forschungsergebnissen durch Bewahrung des Zugriffs auf Forschungssoftware“
Autorinnen: Dirk von Suchodoletz, Peter Brettschneider, Alexandra Axtmann, Maximilian Heber, Lars Oberländer, Jan Leendertse, Irene Schumm, Olaf Brand, Karstin Schmidt, Livia Gertis, Michael Selzer, Robert Ulrich, Dorothea Iglezakis, Valerie Boda
Erscheinungsjahr: 2023
Link zum Papier
Dieser Text wurde in Zusammenarbeit mit der UAG-DMP der DINI/nestor-AG Forschungsdaten erstellt.