Nachhaltige Software
Vorbemerkungen:
- Zur Motivation siehe Vorbemerkung auf der Diskussionsseite.
- Anregungen und kritische Bemerkungen sind sehr willkommen!
Aspekte der Nachhaltigkeit werden heute intensiv mit Blick auf die Hardware-Komponenten informationstechnischer Systeme diskutiert (Stichwort "Green IT"). Für den Bereich der Software-Entwicklung werden in verschiedenen aktuellen Forschungsprojekten zwar verstärkt und mit Erfolg entsprechende Überlegungen angestellt, jedoch ist der diesbezügliche Diskussionsprozess sicherlich noch nicht als abgeschlossen anzusehen.
An dieser Stelle soll beschrieben (und diskutiert) werden, was wir im Umfeld des ENE-Projektes unter nachhaltiger (im Gegensatz zu langlebiger!) Software und unter nachhaltigen Software-Engineering-Prozessen verstehen. Sinnvoll scheint eine Unterscheidung zwischen Software-Anwendung (Nutzung) und Software-Entwicklung (Herstellprozess). Demzufolge sollen nachfolgend mit Blick auf die im ENE-Projekt zu Grunde gelegte Nachhaltigkeitsdefinition die Begriffe der nachhaltigen Software und der nachhaltigen Software-Entwicklung präzisiert werden. Unter anderem stellt sich in diesem Kontext auch die Frage, inwieweit der Begriff der Digitalen Nachhaltigkeit konform ist zu dem im ENE-Projekt verwendeten Nachhaltigkeitsbegriff.
Wodurch zeichnet sich "nachhaltige Software" aus?
In der Literatur recht breit akzeptiert ist der Vorschlag von Dick, Naumann & Kuhn (2011), nachhaltige Software wie folgt zu definieren: "Sustainable software is software whose direct and indirect negative impacts on economy, society, human beings, and environment resulting from development, deployment, and usage of the software is minimal and/or has a positive effect on sustainable development." Mit Blick auf die Zielsetzung des ENE-Projekts ist die erstgenannte Bedingung ("minimal impact") an dieser Stelle sicherlich als zu "unambitioniert" einzustufen, so dass im Weiteren der zweite Bedingung verwendet wird ("positive effect").
Häufig verwendet wird daneben der Begriff der Digitalen Nachhaltigkeit, für den mehrere verschiedene Definitionen (oder vielleicht treffender ausgedrückt: verschiedene mit dem gleichen Begriff belegte Konzepte) existieren. Recht verbreitet sind die Definitionen von Dapp (ETH Zürich) und Stürmer (Parlamentatische Gruppe "Digitale Nachhaltigkeit" in der Schweiz), die Wissen als immaterielle Ressource auffassen und den Nutzungsaspekt von Information (inklusive offener Zugangsmöglichkeiten) in den Vordergrund stellen. Insofern scheint diese Sicht (die u. a. stark die Open-Source-Philosophie stützt!) gegenüber der vorgenannten Definition mit Blick auf das ENE-Projekt zu sehr auf die soziale Dimension reduziert (vgl. aber auch Martens 2013, der den Nachhaltigkeitsbegriff in Verbindung mit diesem Konzept für unpassend gewählt hält), so dass wir es zunächst bei folgender Definition belassen:
Nachhaltige Software zeichnet sich dadurch aus, dass die direkten und indirekten negativen ökonomischen, sozialen und ökologischen Auswirkungen, die sich aus der Entwicklung, dem Betrieb und der Verwendung der Software ergeben, minimal sind und zudem mit Blick auf eine nachhaltige Entwicklung positive Wirkung haben.
Was verstehen wir unter "nachhaltiger Software-Entwicklung"?
An dieser Stelle soll beschrieben werden, was wir im Umfeld des ENE-Projekts unter "nachhaltiger Software-Entwicklung" (Link zu unserer Definition des Nachhaltigkeitsbegriffs) verstehen.
Ist auszuformulieren... -> @Peter/CVH: Könnt ihr da schon mal was zu schreiben?
Bitte auch die zugehörige Diskussionsseite beachten.
Leitsätze für die nachhaltige Software-Entwicklung
Welche Leitsätze (und Kriterien) lassen sich für nachhaltige Software-Entwicklungen benennen?
Entwicklungsphasen-bezogene Betrachtung
Anforderungsanalyse
An dieser Stelle sei lediglich der potenziell positive Einfluss partizipativer Elemente innerhalb dieser Entwicklungsphase genannt (vgl. Diskussion bei Mahaux 2013). Weitere Ausführungen siehe zahlreiche weitere Literaturquellen.
Systementwurf
Leitsätze für den Systementwurf (u. a. Systemarchitektur, Schnittstellen der Komponenten,
Feinentwurf):
- ...
- ...
- ...
TODO!! Hier ist u. a. die SW-Architektur mit ihren wiederverwendbaren Diensten zu nennen!
Implementierung
Leitsätze für die Implementierung:
- ...
- ...
- ...
TODO
Test, Integration, Qualitätssicherung
Hier zunächst nicht weiter betrachtet, siehe Literatur.
Anwendungsdomänen-bezogene Betrachtung
Web-Anwendungen
Leitsätze für die Entwicklung nachhaltiger Web-Anwendungen sind z. B. bei Naumann et al. zu finden.
Geoinformation
TODO Benno (INSPIRE-Richtlinie z. B. kritisch unter dem Aspekt der sozialen Nachhaltigkeit)
Referenzen
- Dick, M., S. Naumann & N. Kuhn (2010): A Model and Selected Instances of Green and Sustainable Software. Proceedings of the 9th IFIP TC 9 and 1st IFIP TC 11 International Conference, Brisbane, Australia, Sept. 2010, pp. 248-259.
- Penzenstadler, B., V. Bauer, C. Calero & X. Franch (2012): Sustainability in Software Engineering: A Systematic Literature Review.
- Martens, K.-U. (2013): Digitale Nachhaltigkeit. In J. Kegelmann & K.-U. Martens, Hrsg.: Kommunale
Nachhaltigkeit, Nomos-Verlag, S. 304-315.
TODO weitere Referenzen