Baustellenschild

Diese Seiten befinden sich im Aufbau.

Sie können unvollständige, veraltete und/oder sich widersprechende Informationen enthalten.

Nachhaltige Software: Unterschied zwischen den Versionen

Aus Erlebnisraum Nachhaltige Entwicklung
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
(Ergänzungen zum Thema "Gestures" und "Open-Source")
Zeile 3: Zeile 3:


= Einleitung =
= Einleitung =

Aspekte der Nachhaltigkeit werden heute intensiv mit Blick auf die ''Hardware''-Komponenten
Aspekte der Nachhaltigkeit werden heute intensiv mit Blick auf die ''Hardware''-Komponenten
informationstechnischer Systeme diskutiert (Stichwort "Green IT"). Für den Bereich der
informationstechnischer Systeme diskutiert (Stichwort "Green IT"). Für den Bereich der
Zeile 9: Zeile 10:
sicherlich noch nicht als abgeschlossen anzusehen.
sicherlich noch nicht als abgeschlossen anzusehen.


Zunächst ist festzustellen: Die Entwicklung und Nutzung informationstechnischer Systeme ist grundsätzlich mit einem Verbrauch von Ressourcen (Energie, Rohstoffe etc.) verbunden. Systemoptimierungen unter dem Aspekt der [[Energieeffizienz]] sind zwar wünschenswert, lösen diese Problematik jedoch sicherlich nicht: Ein energieeffizientes IT-System ist weniger "schlimm" als seine ineffiziente Variante, darf aber sicherlich nicht allein auf Grund seines minimierten Energiebedarfs als "nachhaltig" bezeichnet werden! Insofern stellt sich die Frage, ob und ggf. wie sich informationstechnische Systeme schaffen lassen, deren (umfassend betrachtete) Auswirkung auf die Umwelt nicht-negativ ist.
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). Demgemäß sollen nachfolgend mit Blick auf die [[Integrative_Nachhaltigkeit|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 [http://de.wikipedia.org/wiki/Digitale_Nachhaltigkeit Digitalen Nachhaltigkeit] konform ist zu dem im ENE-Projekt verwendeten Nachhaltigkeitsbegriff.
An dieser Stelle unseres Wikis 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). Demgemäß sollen nachfolgend mit Blick auf die [[Integrative_Nachhaltigkeit|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 [http://de.wikipedia.org/wiki/Digitale_Nachhaltigkeit Digitalen Nachhaltigkeit] konform ist zu dem im ENE-Projekt verwendeten Nachhaltigkeitsbegriff.


= Wodurch zeichnet sich "nachhaltige Software" aus? =
= 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 [[Mission_Statement|Zielsetzung des ENE-Projekts]] ist die erstgenannte Teilbedingung ("minimal impact") an dieser Stelle sicherlich als zu "unambitioniert" einzustufen, so dass im Weiteren die zweite Bedingung greifen sollte ("positive effect").
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 [[Mission_Statement|Zielsetzung des ENE-Projekts]] ist die erstgenannte Teilbedingung ("minimal impact") an dieser Stelle sicherlich als zu "unambitioniert" einzustufen, so dass im Weiteren die zweite Bedingung greifen sollte ("positive effect").


Häufig verwendet wird daneben der Begriff der [http://de.wikipedia.org/wiki/Digitale_Nachhaltigkeit Digitalen (oder Informationellen) 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 erfreulicherweise 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. auch Martens 2013, der den Nachhaltigkeitsbegriff für unpassend gewählt hält in Verbindung mit diesem Konzept, da dieser Ansatz nicht auf die Schonung natürlicher Ressourcen abzielt), so dass wir es zunächst bei folgender Definition belassen:
Häufig verwendet wird daneben der Begriff der [http://de.wikipedia.org/wiki/Digitale_Nachhaltigkeit Digitalen (oder Informationellen) 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 erfreulicherweise 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. auch Martens 2013, der den Nachhaltigkeitsbegriff für unpassend gewählt hält in Verbindung mit diesem Konzept, da dieser Ansatz nicht auf die Schonung natürlicher Ressourcen abzielt), 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 und zudem mit Blick auf eine nachhaltige Entwicklung positiv sind.''
* '''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 und zudem mit Blick auf eine nachhaltige Entwicklung positiv sind.''


In der Folge muss "digital nachhaltige" Software nicht per se nachhaltig in unserem Sinne (Link zu [[Integrative_Nachhaltigkeit|unserer Definition des Nachhaltigkeitsbegriffs]]) bzw. im Sinne der oben stehenden Definition sein!
In der Folge muss "digital nachhaltige" Software nicht per se nachhaltig in unserem Sinne (Link zu [[Integrative_Nachhaltigkeit|unserer Definition des Nachhaltigkeitsbegriffs]]) bzw. im Sinne der oben stehenden Definition sein!


= Was verstehen wir unter "nachhaltiger Software-Entwicklung"? =
= Was verstehen wir unter "nachhaltiger Software-Entwicklung"? =

Eine explizite Definition des Begriffs der "nachhaltigen Software-Entwicklung" ist an dieser Stelle nicht erforderlich, denn oben stehende Definition für "nachhaltige Software" beinhaltet bereits den Entwicklungsprozess. Trotzdem können viele Entwurfsentscheidungen während dieses Prozesses entscheidenden Einfluss auf das Erreichen der Nachhaltigkeitsziele haben.
Eine explizite Definition des Begriffs der "nachhaltigen Software-Entwicklung" ist an dieser Stelle nicht erforderlich, denn oben stehende Definition für "nachhaltige Software" beinhaltet bereits den Entwicklungsprozess. Trotzdem können viele Entwurfsentscheidungen während dieses Prozesses entscheidenden Einfluss auf das Erreichen der Nachhaltigkeitsziele haben.


Negativ-Beispiele, die sich z. B. aus einem ungeeigneten Systementwurf ergeben können:
''Negativ-Beispiele,'' die sich z. B. aus einem ungeeigneten Systementwurf ergeben können:
# Die Anwendung hat unangemessen hohe Hardware-Voraussetzungen und zwingt den Anwender zum Kauf eines neuen Computers, obwohl der "alte" ansonsten noch gut läuft.
* Die Anwendung hat unangemessen hohe Hardware-Voraussetzungen und zwingt den Anwender zum Kauf eines neuen Computers, obwohl der "alte" ansonsten noch gut läuft.
* Eine billionenfach aufgerufene Funktion (z. B. innerhalb einer Massenanwendung mit sehr großer Nutzerzahl) arbeitet algorithmisch ineffizient und führt somit zu einer sehr hohen CPU-Last und einem hohen Energieverbrauch.
# Die Anwendung verwendet proprietäre Datenformate und ein Import der eigenen Daten in andere Systeme ist nicht vorgesehen.
* Die Anwendung verwendet proprietäre Datenformate und ein Import der eigenen Daten in andere Systeme ist nicht vorgesehen.
# Es wird nur ein bestimmtes Betriebssystem und ein bestimmter Gerätetyp unterstützt.
* Es wird nur ein bestimmtes Betriebssystem und ein bestimmter Gerätetyp unterstützt.
# Eine App führt zu einem sehr hohen Energieverbrauch (siehe auch [[Diskussion:Nachhaltige_Software|Diskussion]]), da sie eine permanente mobile Web-Verbindung und zusätzlich ein GPS-Signal benötigt.
* Eine Anwendung zum Abruf von Video-Dokumenten lädt bei jedem späteren Abruf das gesamte Dokument erneut über das Web (kein lokales Caching, keine Download-Möglichkeit).
* Eine App führt zu einem sehr hohen Energieverbrauch (siehe auch [[Diskussion:Nachhaltige_Software|Diskussion]]), da sie eine permanente mobile Web-Verbindung und zusätzlich ein GPS-Signal benötigt.


TODO: bessere/weitere Beispiele?
TODO: bessere/weitere Beispiele?

Nachstehende ''Positiv-Beispiele'' dürften unserer Kriterium erfüllen:
* D1 Die Anwendung ermöglicht die praktische Durchführung einer Tätigkeit, welche einen positiven Effekt auf die Umwelt hat. Beispiele:
# ein GIS-Werkzeug zur Optimierung des Standorts einer Windkraftanlage
# eine E-Government-Anwendung (digitale Formulare per Internet statt Papier und Fahrt zum Amt)
# ein [http://ene.cvh-server.de/wiki/index.php/Entwicklung_und_Aufbau_einer_Social_Community Soziales Netzwerk], das seine Mitglieder dazu veranlasst, nachweislich mehr Energie zu sparen als Konzeption, Aufbau und Betrieb des Netzwerks benötigt haben/benötigen ;-)
* D2 In der Anwendung ist konzeptionell ein Mechanismus verankert, durch den ein Beitrag zur Verbesserung des ökologischen Zustands der Erde geliefert wird, z. B. indem automatisch durch die Nutzung der Anwendung Geldbeträge an nachhaltige Projekte gespendet werden.
# Beispiel: [http://www.ecosia.com Ecosia] (das übrigens im Design der [http://de.wikipedia.org/wiki/Blackle Blackle-Version] der Google-Suchmaschine als Massenanwendung noch nachhaltiger wäre).


Nachstehende Beispiele sind im Einzelfall genauer zu untersuchen hinsichtlich ihrer tatsächlichen Nachhaltigkeit, scheinen jedoch zunächst in die positive Richtung zu tendieren:
Nachstehende Beispiele sind im Einzelfall genauer zu untersuchen hinsichtlich ihrer tatsächlichen Nachhaltigkeit, scheinen jedoch zunächst in die positive Richtung zu tendieren:


* D3 Einzelne Systemteile (z. B. Web-Dienste oder Datenbestände) lassen sich auch in Fremdsystemen oder späteren Neuentwicklungen direkt verwenden.
# In der Anwendung ist konzeptionell ein Mechanismus verankert, durch den ein Beitrag zur Verbesserung des ökologischen Zustands der Erde geliefert wird, z. B. indem automatisch durch die Nutzung der Anwendung Geldbeträge an nachhaltige Projekte gespendet werden (Beispiel [http://www.ecosia.com Ecosia]).
* D4 Das System ist skalierbar.
# Einzelne Systemteile (z. B. Web-Dienste oder Datenbestände) lassen sich auch in Fremdsystemen oder späteren Neuentwicklungen direkt verwenden.
* D5 Die Anwendung lässt sich leicht um neue Funktionalität erweitern.
# Das System ist skalierbar.
* D6 Ein System bietet langlebige Interfaces an, wodurch nach Änderung der Implementierung (z. B. System-Update) die Applikationen, die diese Interfaces nutzen, weiterhin lauffähig sind.
# Die Anwendung lässt sich leicht um neue Funktionalität erweitern.
* D7 Fehler in einer Anwendung lassen sich reparieren.
# Während der Anforderunganalyse gibt es weitreichende Partizipationsmöglichkeiten für alle Stakeholder.


TODO: bessere/weitere Beispiele?
TODO: bessere/weitere Beispiele?
Zeile 47: Zeile 59:
Für praktische Software-Entwicklungsprozesse dürften Leitsätze und Richtlinien zur Berücksichtigung von Nachhaltigkeitsaspekten weitgehend fehlen.
Für praktische Software-Entwicklungsprozesse dürften Leitsätze und Richtlinien zur Berücksichtigung von Nachhaltigkeitsaspekten weitgehend fehlen.


Welche Leitsätze (und Kriterien) lassen sich für nachhaltige Software-Entwicklungen benennen?
* Welche Leitsätze (und Kriterien) lassen sich für nachhaltige Software-Entwicklungen benennen?
* Lassen sich "'''Gestures'''" im Sinne einer Selbstverpflichtung für die Software-Entwickler zusammentragen (siehe dazu [[Unterstützung_des_Erlebnisraums_in_der_Schweiz:_"Oracle_du_Papillon"|unseren Beitrag für das "Oracle du papillon"]])? Beispielsweise scheinen die Eigenschaft D2 und die Geste '''[[Mobilität|M10]]''' ebenso "homomorph" wie D3 und '''[[Wohnen|H9]]''', D4 und '''[[Wohnen|H7]]''' oder D7 und '''[[K_Konsum|C9]]'''.


== Entwicklungsphasen-bezogene Betrachtung ==
== Entwicklungsphasen-bezogene Betrachtung ==
Zeile 88: Zeile 101:
TODO Benno
TODO Benno
(INSPIRE-Richtlinie z. B. kritisch unter dem Aspekt der sozialen Nachhaltigkeit)
(INSPIRE-Richtlinie z. B. kritisch unter dem Aspekt der sozialen Nachhaltigkeit)

= Open-Source-Software und Nachhaltigkeit =

Eingangs wurde der Begriff der "Digitalen Nachhaltigkeit" diskutiert, der nicht zwingender Weise einer Nachhaltigkeit in unserem Sinne einher gehen muss. Martens (2013) schlägt daher die (vielleicht treffendere) Bezeichung "Digitale Allmende" vor, was sich (überraschenderweise?) in etwa mit "digital commons" in die englische Sprache übersetzen ließe. Unabhängig von der verwendeten Begrifflichkeit ist in diesem Umfeld die Open-Source-Philophie von zentraler Bedeutung. An dieser Stelle sei die Frage gestellt, ob und ggf. wie Open-Source einen positiven Betrag zu nachhaltiger Software liefert.

Zu nennen sind folgende Aspekte:
# Open-Source ist unter dem Aspekt der sozialen Gerechtigkeit als positiv zu bewerten. (Das gilt allerdings nur für diejenigen, die Zugang zum Internet haben und die Quellen in Wert zu setzen verstehen - wie ist da die Situation z. B. für die Bevölkerung Ugandas?)
# Steht der Quellcode zur Verfügung, lassen sich Fehler in einer Anwendung beheben (siehe oben stehende Eigenschaft D7).
# Wer arbeitet Ressourcen-effizienter: 40 Leute, die 4 Stunden auf dem Quellcode arbeiten oder 2 Leute, die jeweils 80 Arbeitsstunden zur Verfügung haben?
# ...
# ...

TODO: @Andreas, Peter: Weitere Punkte?


= Referenzen =
= 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.
* 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. Evaluation & Assessment in Software Engineering (EASE 2012), Proceedings, Ciudad Real, Spain, May 14-15, 2012, pp. 32-41.
* Penzenstadler, B., V. Bauer, C. Calero & X. Franch (2012): Sustainability in Software Engineering: A Systematic Literature Review. Evaluation & Assessment in Software Engineering (EASE 2012), Proceedings, Ciudad Real, Spain, May 14-15, 2012, pp. 32-41.

* Martens, K.-U. (2013): Digitale Nachhaltigkeit. In J. Kegelmann & K.-U. Martens, Hrsg.: Kommunale Nachhaltigkeit, Nomos-Verlag, S. 304-315.
* Martens, K.-U. (2013): Digitale Nachhaltigkeit. In J. Kegelmann & K.-U. Martens, Hrsg.: Kommunale Nachhaltigkeit, Nomos-Verlag, S. 304-315.

* Rodriguez, A. & B. Penzenstadler (2013): Applying the IMAGINE Approach to Software Systems. Proceedings of the 2nd International Workshop on Requirements Engineering for Sustainable Systems, Rio, Brasil, July 15, 2013.
* Rodriguez, A. & B. Penzenstadler (2013): Applying the IMAGINE Approach to Software Systems. Proceedings of the 2nd International Workshop on Requirements Engineering for Sustainable Systems, Rio, Brasil, July 15, 2013.

Version vom 24. Februar 2014, 22:53 Uhr

Einleitung

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.

Zunächst ist festzustellen: Die Entwicklung und Nutzung informationstechnischer Systeme ist grundsätzlich mit einem Verbrauch von Ressourcen (Energie, Rohstoffe etc.) verbunden. Systemoptimierungen unter dem Aspekt der Energieeffizienz sind zwar wünschenswert, lösen diese Problematik jedoch sicherlich nicht: Ein energieeffizientes IT-System ist weniger "schlimm" als seine ineffiziente Variante, darf aber sicherlich nicht allein auf Grund seines minimierten Energiebedarfs als "nachhaltig" bezeichnet werden! Insofern stellt sich die Frage, ob und ggf. wie sich informationstechnische Systeme schaffen lassen, deren (umfassend betrachtete) Auswirkung auf die Umwelt nicht-negativ ist.

An dieser Stelle unseres Wikis 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). Demgemäß 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 Teilbedingung ("minimal impact") an dieser Stelle sicherlich als zu "unambitioniert" einzustufen, so dass im Weiteren die zweite Bedingung greifen sollte ("positive effect").

Häufig verwendet wird daneben der Begriff der Digitalen (oder Informationellen) 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 erfreulicherweise 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. auch Martens 2013, der den Nachhaltigkeitsbegriff für unpassend gewählt hält in Verbindung mit diesem Konzept, da dieser Ansatz nicht auf die Schonung natürlicher Ressourcen abzielt), 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 und zudem mit Blick auf eine nachhaltige Entwicklung positiv sind.

In der Folge muss "digital nachhaltige" Software nicht per se nachhaltig in unserem Sinne (Link zu unserer Definition des Nachhaltigkeitsbegriffs) bzw. im Sinne der oben stehenden Definition sein!

Was verstehen wir unter "nachhaltiger Software-Entwicklung"?

Eine explizite Definition des Begriffs der "nachhaltigen Software-Entwicklung" ist an dieser Stelle nicht erforderlich, denn oben stehende Definition für "nachhaltige Software" beinhaltet bereits den Entwicklungsprozess. Trotzdem können viele Entwurfsentscheidungen während dieses Prozesses entscheidenden Einfluss auf das Erreichen der Nachhaltigkeitsziele haben.

Negativ-Beispiele, die sich z. B. aus einem ungeeigneten Systementwurf ergeben können:

  • Die Anwendung hat unangemessen hohe Hardware-Voraussetzungen und zwingt den Anwender zum Kauf eines neuen Computers, obwohl der "alte" ansonsten noch gut läuft.
  • Eine billionenfach aufgerufene Funktion (z. B. innerhalb einer Massenanwendung mit sehr großer Nutzerzahl) arbeitet algorithmisch ineffizient und führt somit zu einer sehr hohen CPU-Last und einem hohen Energieverbrauch.
  • Die Anwendung verwendet proprietäre Datenformate und ein Import der eigenen Daten in andere Systeme ist nicht vorgesehen.
  • Es wird nur ein bestimmtes Betriebssystem und ein bestimmter Gerätetyp unterstützt.
  • Eine Anwendung zum Abruf von Video-Dokumenten lädt bei jedem späteren Abruf das gesamte Dokument erneut über das Web (kein lokales Caching, keine Download-Möglichkeit).
  • Eine App führt zu einem sehr hohen Energieverbrauch (siehe auch Diskussion), da sie eine permanente mobile Web-Verbindung und zusätzlich ein GPS-Signal benötigt.
TODO: bessere/weitere Beispiele?

Nachstehende Positiv-Beispiele dürften unserer Kriterium erfüllen:

  • D1 Die Anwendung ermöglicht die praktische Durchführung einer Tätigkeit, welche einen positiven Effekt auf die Umwelt hat. Beispiele:
  1. ein GIS-Werkzeug zur Optimierung des Standorts einer Windkraftanlage
  2. eine E-Government-Anwendung (digitale Formulare per Internet statt Papier und Fahrt zum Amt)
  3. ein Soziales Netzwerk, das seine Mitglieder dazu veranlasst, nachweislich mehr Energie zu sparen als Konzeption, Aufbau und Betrieb des Netzwerks benötigt haben/benötigen ;-)
  • D2 In der Anwendung ist konzeptionell ein Mechanismus verankert, durch den ein Beitrag zur Verbesserung des ökologischen Zustands der Erde geliefert wird, z. B. indem automatisch durch die Nutzung der Anwendung Geldbeträge an nachhaltige Projekte gespendet werden.
  1. Beispiel: Ecosia (das übrigens im Design der Blackle-Version der Google-Suchmaschine als Massenanwendung noch nachhaltiger wäre).

Nachstehende Beispiele sind im Einzelfall genauer zu untersuchen hinsichtlich ihrer tatsächlichen Nachhaltigkeit, scheinen jedoch zunächst in die positive Richtung zu tendieren:

  • D3 Einzelne Systemteile (z. B. Web-Dienste oder Datenbestände) lassen sich auch in Fremdsystemen oder späteren Neuentwicklungen direkt verwenden.
  • D4 Das System ist skalierbar.
  • D5 Die Anwendung lässt sich leicht um neue Funktionalität erweitern.
  • D6 Ein System bietet langlebige Interfaces an, wodurch nach Änderung der Implementierung (z. B. System-Update) die Applikationen, die diese Interfaces nutzen, weiterhin lauffähig sind.
  • D7 Fehler in einer Anwendung lassen sich reparieren.
TODO: bessere/weitere Beispiele?

Leitsätze für die nachhaltige Software-Entwicklung

Für praktische Software-Entwicklungsprozesse dürften Leitsätze und Richtlinien zur Berücksichtigung von Nachhaltigkeitsaspekten weitgehend fehlen.

  • Welche Leitsätze (und Kriterien) lassen sich für nachhaltige Software-Entwicklungen benennen?
  • Lassen sich "Gestures" im Sinne einer Selbstverpflichtung für die Software-Entwickler zusammentragen (siehe dazu unseren Beitrag für das "Oracle du papillon")? Beispielsweise scheinen die Eigenschaft D2 und die Geste M10 ebenso "homomorph" wie D3 und H9, D4 und H7 oder D7 und C9.

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.

  • Idee: Rodriguez & Penzenstadler (2013) schlagen vor, umfassend für alle Stakeholder-Gruppen jeweils bedeutsame und relevante Nachhaltigkeits-Indikatoren zu identifizieren und während des Projektverlaufs zu verfolgen.

Systementwurf

Leitsätze für den Systementwurf (u. a. Systemarchitektur, Schnittstellen der Komponenten, Feinentwurf):

  1. ...
  2. ...
  3. ...
 TODO!! 
 Hier ist u. a. die SW-Architektur mit ihren wiederverwendbaren Diensten zu nennen!

Implementierung

Leitsätze für die Implementierung:

  1. ...
  2. ...
  3. ...
 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)

Open-Source-Software und Nachhaltigkeit

Eingangs wurde der Begriff der "Digitalen Nachhaltigkeit" diskutiert, der nicht zwingender Weise einer Nachhaltigkeit in unserem Sinne einher gehen muss. Martens (2013) schlägt daher die (vielleicht treffendere) Bezeichung "Digitale Allmende" vor, was sich (überraschenderweise?) in etwa mit "digital commons" in die englische Sprache übersetzen ließe. Unabhängig von der verwendeten Begrifflichkeit ist in diesem Umfeld die Open-Source-Philophie von zentraler Bedeutung. An dieser Stelle sei die Frage gestellt, ob und ggf. wie Open-Source einen positiven Betrag zu nachhaltiger Software liefert.

Zu nennen sind folgende Aspekte:

  1. Open-Source ist unter dem Aspekt der sozialen Gerechtigkeit als positiv zu bewerten. (Das gilt allerdings nur für diejenigen, die Zugang zum Internet haben und die Quellen in Wert zu setzen verstehen - wie ist da die Situation z. B. für die Bevölkerung Ugandas?)
  2. Steht der Quellcode zur Verfügung, lassen sich Fehler in einer Anwendung beheben (siehe oben stehende Eigenschaft D7).
  3. Wer arbeitet Ressourcen-effizienter: 40 Leute, die 4 Stunden auf dem Quellcode arbeiten oder 2 Leute, die jeweils 80 Arbeitsstunden zur Verfügung haben?
  4. ...
  5. ...
TODO: @Andreas, Peter: Weitere Punkte?

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. Evaluation & Assessment in Software Engineering (EASE 2012), Proceedings, Ciudad Real, Spain, May 14-15, 2012, pp. 32-41.
  • Martens, K.-U. (2013): Digitale Nachhaltigkeit. In J. Kegelmann & K.-U. Martens, Hrsg.: Kommunale Nachhaltigkeit, Nomos-Verlag, S. 304-315.
  • Rodriguez, A. & B. Penzenstadler (2013): Applying the IMAGINE Approach to Software Systems. Proceedings of the 2nd International Workshop on Requirements Engineering for Sustainable Systems, Rio, Brasil, July 15, 2013.