Kategorien
Softwareentwicklung

Nachhaltige Softwareentwicklung

Am 20.4. findet das erste Treffen des Expert:innen-Forums „Nachhaltige Softwareentwicklung in NFDI4Culture“ statt. Das Forum beschäftigt sich mit „Themen der nachhaltigen Entwicklung und des nachhaltigen Betriebs von Forschungswerkzeugen und Datendiensten“, die anhand einiger Leitfragen diskutiert werden.

An dieser Stelle habe ich einige Gedanken zu den dortigen Leitfragen formuliert. Dies steht einerseits vor meinem Hintergrund als Softwareentwicklerin sowie auch vor dem institutionellen Kontext von langfristigen geisteswissenschaftlichen Forschungsvorhaben im Akademienprogramm (Beispiele dafür hier).

Nachhaltige Software ist meinem Verständnis nach für Andere (nach-)nutzbar und wird aktuell gehalten oder sogar weiterentwickelt.

Das Software Sustainability Institute beschreibt nachhaltige Software als „software you use today will be available – and continue to be improved and supported – in the future“.

Im Kontext von zeitlich begrenzten Forschungsvorhaben mit eingeschränkten Ressourcen ist ein weiterbestehender Support oder gar die Weiterentwicklung schwierig zu realisieren, so dass es in vielen Fällen darum geht, Nachhaltigkeit bestmöglich umzusetzen.

Was bedeutet Nachhaltigkeit für Tools und Dienste? Nachnutzbarkeit – Generische Anwendbarkeit – Nachvollziehbarkeit

Wichtig ist im Kontext der Nachhaltigkeit eine generische Anwendbarkeit sowie Nachvollziehbarkeit der Software, auch über die konkreten Anwendungsfelder hinaus, für die die Software entwickelt wurde. Hierbei helfen Codequalität und Softwarearchitektur (etwa Kapselung in Module, Microservices, Standards) und eine gute Dokumentation.

Hilfreich ist dabei Dokumentation, die über die „Dokumentation im Code“ hinaus geht: weitere Informationen zu Features und Nutzung der Applikation (FAQs, „Getting started“), oder Dokumentation von Entscheidungen (Wie wurden Entscheidungen zur Technologieauswahl, Frameworks, Softwarearchitektur etc. getroffen?)

Grundsätzlich spielen bei der Nachhaltigkeit von Software auch die Kriterien, die in den FAIR data principles (findability, accessibility, interoperability, and reusability) formuliert wurden. Bezogen auf Software bedeutet dies neben dem bereits genannte die Versionierung, offene Verüfgbarkeit und Lizenzierung.

Die Rolle der Technologieauswahl

Die Rolle der Technologieauswahl hat einen unmittelbaren Einfluss auf die Nachhaltigkeit der Software. Zentral sind dabei die Nutzung möglichst langfristiger und stabiler Komponenten (Stichworte: Boring Technology, Dependency hell).

Eine Frage ist auch: muss Nachhaltigkeit für jede entwickelte Software eine Rolle spielen? Gerade experimentelle Entwicklungen können sinnvollerweise nicht nachhaltig ausgelegt sein, wenn es etwa darum geht, bestimmte Frameworks auszuprobieren oder die Entwicklung im Zusammenhang mit einer experimentellen Fragestellung steht. Interessant können die Entwicklungen dennoch, etwa konzeptionell, oder als Vorstudien zu größeren, nachfolgenden Applikationen, sein.

Wie kann Nachhaltigkeit für Forschungssoftware in NFDI4Culture erreicht werden?

Eine zentrale Rolle spielt dabei das geplante „Registry“, das domänenspezifsche Datensammlungen, Dienste und Tools verzeichnen wird (vgl. https://riojournal.com/article/57036).

Interessant ist dabei auch die Frage nach der Gliederung und den  der Aufnahme zugrundeliegenen Kriterien, die sich generell stellt, wenn es darum geht Software, aber auch Daten, Editionen etc. zu verzeichen. Dazu gehört auch die Frage, was als Tools, Dienste oder Forschungssoftware verstanden wird (Vollständige Anwendungen, die bereits von einer großen Community genutzt werden? Bereits kleinere Anwendungen, die etwa der Datenaufbereitung dienen?).

Dabei gibt es grundsätzlich zwei Möglichkeiten – und natürlich gibt es dabei auch einen Mittelweg – ein eher „restriktiver“ Zugang mit spezifischen Kriterien, oder man verfolgt das Ziel, möglichst viele Applikationen nachzuweisen, um einen größeren Überblick über Entwicklungen in dem spezifischen Feld und den Disziplinen zu schaffen, um bestehende Entwicklungen sichtbar zu machen und um Austausch zu ermöglichen.

Die Möglichkeiten eines solchen Registry und ein Beitrag der NFDI für das Research Software Engineering kann dabei zudem auch die wichtige Stärkung der Reputation von Softwareveröffentlichungen in den Geisteswissenschaften sein.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.