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
 
(35 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Dieser Beitrag ist noch in einer Rohversion, wir haben noch nicht alle
Aspekte ergänzt...

* Zur Motivation siehe Vorbemerkung auf der [[Diskussion:Nachhaltige_Software|Diskussionsseite]].
* Zur Motivation siehe Vorbemerkung auf der [[Diskussion:Nachhaltige_Software|Diskussionsseite]].
* [[Diskussion:Nachhaltige_Software|Anregungen und kritische Bemerkungen]] sind sehr willkommen!
* [[Diskussion:Nachhaltige_Software|Anregungen und kritische Bemerkungen]] sind sehr willkommen!


Dies ist "work in progress". Prima wäre es, wenn wir zu einer Begriffs-
= Einleitung =
definition gelangen könnten, die von '''allen''' Projektteilnehmern getragen wird!

= Zielsetzung dieses Wiki-Beitrags =


Aspekte der Nachhaltigkeit werden heute intensiv mit Blick auf die ''Hardware''-Komponenten
Aspekte der Nachhaltigkeit werden heute intensiv mit Blick auf die ''Hardware''-Komponenten
Zeile 13: Zeile 13:
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 zwar weniger "schlimm" als seine ineffiziente Variante, lässt sich aber sicherlich nicht allein auf Grund eines minimierten Energiebedarfs als "nachhaltig" bezeichnen. Insofern stellt sich die Frage, ob und ggf. wie sich informationstechnische Systeme schaffen lassen, deren (umfassend betrachtete) Auswirkung auf die Umwelt nicht-negativ ist.
* Bemerkung: Die Entwicklung und Nutzung informationstechnischer Systeme ist grundsätzlich mit einem Verbrauch von Ressourcen (Energie, Rohstoffe etc.) verbunden. Insofern stellt sich die Frage, ob und ggf. wie sich informationstechnische Systeme schaffen lassen, deren (umfassend betrachtete) Auswirkung auf die Umwelt positiv 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 [[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."''


Wir haben die Definition (''vorläufig'')leicht abgeändert:
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 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).


* (Integrativ-) '''Nachhaltige Software''' ''zeichnet sich dadurch aus, dass die direkten und indirekten negativen Auswirkungen auf Gesellschaft, Mensch und Umwelt, die sich aus der Entwicklung, dem Betrieb und der Verwendung der Software ergeben, minimal sind. Zudem sollen sich mit Blick auf eine (integrativ-) nachhaltige Entwicklung durch die Software langfristig positive Auswirkungen ergeben.''
Subsumieren wir ökonomisch negative Auswirkungen auf Grund der damit einher gehenden sozialen Konsequenzen unter dem "Mensch und Gesellschaft", so können wir es zunächst bei folgender Definition belassen:


Unter "langfristig positiven Wirkungen" verstehen wir dabei im ENE-Projekt (mit der Zielsetzung einer [[Integrative_Nachhaltigkeit|Integrativen Nachhaltigkeit]]) eine ''Entwicklung,'' die den Einklang von Mensch, Gesellschaft und Natur im Sinne eines "bien vivir" unter Einhaltung natürlicher Stoffkreisläufe und frei von irreversiblen Änderungen anstrebt; siehe auch Schweizer-Ries (2013). Technologie im Allgemeinen und insbesondere auch informationstechnische Systeme sehen wir dabei als ''treibenden Faktor'' zur Entwicklung von Hilfsmitteln und Vorgehensmodellen zur Unterstützung und Förderung nachhaltiger Lebensweisen. (An dieser Stelle sind wir Technik-gläubig.)
* '''Nachhaltige Software''' ''zeichnet sich dadurch aus, dass die direkten und indirekten negativen Auswirkungen auf Gesellschaft, Mensch und Umwelt, die sich aus der Entwicklung, dem Betrieb und der Verwendung der Software ergeben, minimal sind und sich zudem mit Blick auf eine nachhaltige Entwicklung langfristig positive Auswirkungen ergeben.''

Mit der Zielsetzung einer [[Integrative_Nachhaltigkeit|Integrierten Nachhaltigkeit]] verstehen wir dabei im ENE-Projekt unter langfristig positiven Wirkungen den Einklang von Mensch, Gesellschaft und Natur im Sinne eines "bien vivir" unter Einhaltung natürlicher Stoffkreisläufe und frei von irreversiblen Änderungen; siehe auch Schweizer-Ries (2013). (In der Folge ist "digital nachhaltige" Software übrigens nicht per se nachhaltig in unserem Sinne.)

Integrativ-nachhaltige IT-Systeme scheinen an dieser Stelle kaum möglich. Wir versuchen eine andere, pragmatische Blickrichtung einzunehmen, indem wir Technologie als treibenden Faktor zur Entwicklung von Hilfsmitteln und Vorgehensweisen zur Vermeidung nicht-nachhaltiger Lebensweisen ansehen.


= 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 verzichtbar, denn oben stehende Definition für "nachhaltige Software" beinhaltet bereits den Entwicklungsprozess. Trotzdem lohnt sich an dieser Stelle eine abstrakte Sicht auf unser Tun als Software-EntwicklerIn.


== Software-Entwicklung als Transformationsprozess ==
''Negativ-Beispiele,'' die sich z. B. aus einem ungeeigneten Systementwurf ergeben können:
* Eine Anwendung hat unangemessen hohe Hardware-Voraussetzungen und zwingt den Anwender zum Kauf eines neuen Computers, obwohl der "alte" ansonsten noch gut läuft.
* Eine millionenfach 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.
* 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.
* Eine Anwendung verwendet proprietäre Datenformate und ein Import der eigenen Daten in andere Systeme ist nicht vorgesehen.


Prinzipiell lässt sich die Entwicklung und die sich anschließende Nutzung von Software als eine Transformation von menschlichem ''Wissen'' und ''Daten'' (Software = Daten im Sinne von Neumanns) in ''neues Wissen'' (z. B. Handlungswissen) und weitere Daten (u. a. Software) ansehen. Dieser Transformationsprozess, der mit einem Austausch von Mensch, Gesellschaft und Natur einher geht, bedarf der Zufuhr geeigneter ''materieller und energetischer Ressourcen'', die im Rahmen der Entwicklung und des Betriebs der Software ebenfalls transformiert werden, z. B. für die Hardware benötigte Rohstoffe und elektrische Energie in Elektronik-Schrott, CO2 und Abwärme.
TODO: weitere/bessere Beispiele?


Mit Blick auf eine [[Integrative_Nachhaltigkeit|Integrative Nachhaltigkeit]] lässt sich fordern: Der Wissensgewinn sollte größer sein als der ''irreversibel'' transformierte Anteil der eingesetzten energetischen und materiellen Ressourcen. -> Zumeist wird ein Gegeneinanderabwägen der (schwer quantifizierbaren) Größen erforderlich sein.
Hingegen dürften nachstehende ''Positiv-Beispiele'' deutlich in Richtung unseres Kriteriums tendieren:
* E1 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 ;-) (wobei eine positive Gesamtbilanz nachzuweisen wäre).
* E2 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).


Ungeachtet dessen und angesichts der Diskussion der gegenwärtigen Umweltprobleme lässt sich an dieser Stelle die ''Notwendigkeit einer "Dematerialisierung" und "Dekarbonisierung"'' der bestehenden Software-Entwicklungsprozesse (deren Output in der stets ''erneuerbaren Ressource "Wissen"'' besteht) konstatieren.
Nachstehende Beispiele bleiben genauer zu untersuchen hinsichtlich ihrer tatsächlichen Nachhaltigkeit, scheinen jedoch (zumindest mit Blick auf eine [[Schwache_Nachhaltigkeit|schwache Nachhaltigkeit]]) ebenfalls als positiv zu bewerten:


= Fazit und Ausblick =
* E3 Einzelne Systemteile (z. B. Web-Dienste oder Datenbestände) lassen sich auch in Fremdsystemen oder späteren Neuentwicklungen direkt verwenden.
* E4 Das System ist skalierbar.
* E5 Die Anwendung lässt sich leicht um neue Funktionalität erweitern.
* E6 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.
* E7 Fehler in einer Anwendung lassen sich Nutzer-seitig reparieren. (Dies erfordert eine geeignete Dokumentation, z. B. API-Beschreibung.)
* E8 Eine Web-Anwendung wird in einem Rechenzentrum gehostet (und/oder wird in einem Softwarehaus entwickelt), das seinen Strom aus regenerativen Energiequellen bezieht.

TODO: bessere/weitere Beispiele?

Die Beispiele E3 bis E8 machen deutlich, dass mit Blick auf die Nachhaltigkeitseigenschaft nicht einzelne Merkmale entscheidend sind. Vielmehr muss sich mit Blick auf Mensch, Gesellschaft und Natur eine positive Gesamtbilanz ergeben, wobei z. B. effizienzverbessernde Maßnahmen wesentliche Beiträge zu einer Bilanzverbesserung liefern können.

= Vorgehensmodell =

Eine stringente, allgemein anerkannte Vorgehensweise zur Erreichung der Nachhaltigkeitsziele ist uns nicht bekannt. Sinnvoll scheint zunächst eine Unterscheidung folgender Phasen (die nicht notwendigerweise streng-sequenziell im problematischen [http://de.wikipedia.org/wiki/Wasserfallmodell "Wasserfall"-Vorgehen] zu durchlaufen sind):
# Zielabgrenzung ("Scoping")
# Identifikation von Nachhaltigkeitsindikatoren
# Bilanzprognose

== Scoping ==
Mit Blick auf unsere Definition für "nachhaltige Software" soll Scoping den Arbeitsschritt der Abgrenzung des Weltausschnitts, auf den sich die zu entwicklende Software auswirkt, bezeichnen. Im Rahmen des Scopings wird somit der Umfang der Prüfung auf Nachhaltigkeit festgelegt. Die Wahl des betrachteten Umfangs kann erheblichen Einfluss auf die Beurteilung von Nachhaltigkeit haben.
TODO: ist auszuführen
* Bem.: Tätigkeit ist im Regelfall im zeitlichen Abständen zu wiederholen ("Rescoping").

== Nachhaltigkeitsindikatoren ==
TODO
evtl. IMAGINE-Ansatz?
* '''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.

== Bilanzprognose ==
TODO
* Bem.: Prognose ist zu erneuern nach Rescoping.

= Leitsätze für die nachhaltige Software-Entwicklung =
Leitsätze und Richtlinien zur Berücksichtigung von Nachhaltigkeitsaspekten in praktischen Software-Entwicklungsprozessen dürften heute weitgehend ausstehen.

* 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 E2 und die Geste '''[[Mobilität|M10]]''' ebenso isomorph wie E3 und '''[[Wohnen|H9]]''', E4 und '''[[Wohnen|H7]]''' oder E7 und '''[[K_Konsum|C9]]'''.

== Entwicklungsphasen-bezogene Betrachtung ==

=== Anforderungsanalyse ===
Dieser Phase können die vorgenannten Merkmale E1 und E2 zugeordnet werden. Weiterhin sei an dieser Stelle lediglich der ''potenziell'' positive Einfluss ''partizipativer'' Elemente
innerhalb dieser Entwicklungsphase genannt (vgl. Diskussion bei Mahaux 2013; weitere Ausführungen
dazu siehe Literatur):

* E9 Während der Anforderungsanalyse gibt es weitreichende Partizipationsmöglichkeiten für alle Interessensbeteiligten (Stakeholder).

TODO: weitere Merkmale?

=== Systementwurf ===
Leitsätze für den Systementwurf betreffen u. a. die Systemarchitektur, Schnittstellen zwischen den wesentlichen Software-Komponenten sowie den Feinentwurf. Dieser Phase lassen sich z. B. die Merkmale E3, E4 und E6 zuordnen, wobei die Grenzen zwischen den Phasen natürlich mitunter fließend sind. Als praktikable zeitgenössische Ansätze zur Erreichung der Eigenschaft E3 seien an dieser Stelle lediglich mehrschichtige und Service-orientierte Architekturen (N-Tier bzw. SOA) exemplarisch genannt, wobei stets adäquate Schnittstellen zwischen den beteiligten Komponenten zu wählen sind, um zu langlebigen Lösungen zu gelangen.

TODO: weitere Merkmale?

* Innerhalb der Architektur, die voraussichtlich zur Realisierung des ENE aufgebaut wird, sind an dieser Stelle die genutzten [[Arbeitsschwerpunkte_des_Labors_für_Geovisualisierung#Systemkomponenten|wiederverwendbaren Dienste]] zu nennen.

=== Implementierung ===
Für die Implementierungsphase können die Merkmale E5, E6 und E7 Anhaltspunkte geben. Als mögliche Ansätze zur Unterstützung der Zielerreichung seien Entwurfsmuster, automatisierte Tests und Dokumentationswerkzeuge genannt.

TODO: weitere Merkmale?

=== Test, Integration, Qualitätssicherung ===

TODO: Merkmale?

== Anwendungsdomänen-bezogene Betrachtung ==

=== Web-Anwendungen ===

Leitsätze für die Entwicklung nachhaltiger Web-Anwendungen sind z. B. bei Naumann et al. zu finden. Explizit genannt seien die Reduzierung der zu übertragenen Daten auf das notwendige Maß und Kompressionsverfahren, um den Internet-Traffic möglichst gerung zu halten.

TODO u. a.: Weiterhin Lightweight-Profile von WS nennen
-> Reduz. Traffic, CPU-Last, Aufwand bei Inwertsetzung, ...

=== 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 mit einer Nachhaltigkeit in unserem Sinne einher gehen muss. Auf Grund dieser Unzulänglichkeit schlägt Martens (2013) daher die (vielleicht treffendere) Bezeichung der "Digitalen Allmende" vor, was sich 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 tatsächlich 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 prinzipiell beheben (siehe oben stehende Eigenschaft E7). In Open-Source-Lösungen kommt so ein Bugfix allen anderen Nutzern zugute.
# Veröffentlichte Software-Artefakte und Konzepte lassen sich in weiteren Software-Entwicklungen nutzen (Effizienzaspekt).
# 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?

= Zertifizierung von Nachhaltigkeit =

TODO: Diskussion dieses Aspekts (Sinnhaftigkeit, Möglichkeiten, ...)

= Verhaltensweisen für den Software-Nutzer =
Aus den angestellten Überlegungen lassen sich Verhaltensweisen für den Software-Konsumenten (im Sinne des im ENE-Projekt verwendeten
[[Unterstützung_des_Erlebnisraums_in_der_Schweiz:_"Oracle_du_Papillon"|Gesture-Begriffs]]) ableiten. Hier wurden 10 Verhaltensweisen ausgewählt, die uns möglicherweise einen kleinen Schritt in die positive Richtung zu bewegen erlauben:

* S1 Ich achte bei der Auswahl einer Software darauf, dass keine unnötig hohen Anforderungen an die Hard- und Betriebssystem-Ressourcen gestellt werden.
* S2 Ich bevorzuge Software, die weit verbreitete Dateiformate und Schnittstellen für den Datenimport und -export unterstützt.
* S3 Ich lege Wert darauf, dass die Software nicht unnötigerweise permanent online ist und sich auch offline betreiben lässt.
* S4 Wenn eine (nachweislich) nachhaltige Software-Alternative zur Verfügung steht, bevorzuge ich diese.
* S5 Ich achte darauf, dass die Software Erweiterungsmöglichkeiten und Programmierschnittstellen bietet.
* S6 Wenn eine etablierte Open-Source-Alternative bereit steht, so bevorzuge ich diese.
* S7 Ich nutze Anwendungen mit geringem Energieverbrauch (siehe z. B. [http://windowsdeveloper.de/news/IE10-verbraucht-weniger-Strom-als-Chrome-Firefox Web-Browser-Vergleich], relevant aber insbesondere Server-seitig).
* S8 ...
* S9 ...
* S10 ...

TODO: Das ist unbedingt noch zu diskutieren, ob das überhaupt Sinn macht!
TODO: Wem fällt noch mehr ein?

= Fazit =

Zusammenfassend lassen sich folgende Erkenntnisse festhalten:


* Der Begriff der "nachhaltigen Software" ist nicht gleichbedeutend mit dem der "effizienten Software".
* Der Begriff der "nachhaltigen Software" ist nicht gleichbedeutend mit dem der "effizienten Software".
* Die Betrachtungen sind nicht auf einzelne Maßnahmen und Software-Merkmale zu beziehen. Vielmehr muss die Gesamtbilanz positiv im Sinne der Nachhaltigkeit sein.
* Die Betrachtungen sind nicht auf einzelne Maßnahmen und Software-Merkmale zu beziehen. Vielmehr muss die Gesamtbilanz positiv im Sinne einer nachhaltigen Entwicklung sein. Hier werden Methoden zur Bewertung der Nachhaltigkeit von Software und Software-Engineering-Prozessen benötigt.
* Open-Source-Software kann ''nennenswerte positive Beiträge'' zur Erreichung des Nachhaltigkeitsziels leisten (tut es aber nicht immer!). Auch proprietäre "Closed-Source"-Software kann allerdings durchaus nachhaltig sein.
* Open-Source-Software kann ''nennenswerte positive Beiträge'' zur Erreichung des Nachhaltigkeitsziels leisten. Auch proprietäre "Closed-Source"-Software kann allerdings durchaus nachhaltig sein (und fungiert darüber hinaus zumeist als treibende Kraft und Ideengeber für innovative Software-Anwendungen).
* Ziel weiterer Aktivitäten im Umfeld "Nachhaltige Software-Entwicklung" sollte eine Sensibilisierung der Software-EntwicklerInnen für dieses aus global wichtige Thema sein.
* Ziel weiterer Aktivitäten im Umfeld "Nachhaltige Software-Entwicklung" sollte eine Sensibilisierung der Software-EntwicklerInnen für dieses aus global wichtige Thema sein.


Es bleiben jedoch zahlreiche Fragestellungen, die es im Rahmen einer angewandten Forschung zu untersuchen gilt:
TODO: weitere Punkte/Erkenntnisse?

* Wie lässt sich der Grad der Nachhaltigkeit von Software-Entwicklungsprozessen praktisch bewerten (messen)?
* Lässt sich der energetische und materielle Bedarf zur Durchführung von Software-Projekten (inklusive aller "Nebenkosten") quantifizieren? In welchem Verhältnis steht dieser Bedarf zu dem erzielbaren Software-Nutzen?
* Welche praktisch anwendbaren Leitsätze (und Kriterien) lassen sich für hinsichtlich der Nachhaltigkeitsziele positive 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"]])?
* Wie lassen sich Software-technische Artefakte durch Nicht-IT-Spezialisten (z. B. in strukturschwachen Regionen dieser Erde) besser in Wert setzen?
* Auf welche Weise können mobile Web-Anwendungen als wesentliche unterstützende Elemente für den Übergang in nachhaltigere Lebensweisen (hier wie in strukturschwachen Regionen) dienen?
* Welche Abhängigkeiten bestehen zwischen Software-Herstellung, Software-Nutzung und global gerechter Ressourcen-Verteilung?
* Software operiert auf Daten. Welche Anforderungen ergeben sich (über den Software-Aspekt hinaus) an eine nachhaltige Datenerfassung, -haltung und -bereitstellung?
Diese spannende Liste gerne diskutieren/ergänzen!


= 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.
* Hilty, L. M. & W. Lohmann (2011): The Five Most Neglected Issues in "Green IT". CEPIS Upgrade, XII(4), Oct. 2011, pp. 11–15.
* Martens, J. & K. Schilder (2012): Sustainable Development. In J. Krieger, ed.: The Oxford Companion to Comparative Politics, 2nd ed., Oxford: Oxford University Press, pp. 813-815.
* Naumann, S., M. Dick, E. Kern & T. Johann (2011): The GREENSOFT Model: A Reference Model for Green and Sustainable Software and ots Engineering. Sustainable Computing: Informatics and Systems.
* 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.
* Schmidt, B. & A. Wytzisk (2014): Software Engineering und Integrative Nachhaltigkeit. In E. Plödereder, L. Grunske, E. Schneider & D. Ull, Hrsg.: Proceedings INFORMATIK 2014, Stuttgart, 22.–26.09.2014, Lecture Notes in Informatics (LNI), Vol. P-232, pp. 1935-1945.
* 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.
* Schweizer-Ries, P. (2013): Theroethical Reflections and Research Experiences. IAPS Bulletin 40, Autumn 2013, pp. 9-12.
* Schweizer-Ries, P. (2013): Theroethical Reflections and Research Experiences. IAPS Bulletin 40, Autumn 2013, pp. 9-12.

Aktuelle Version vom 28. September 2014, 14:55 Uhr

Dies ist "work in progress". Prima wäre es, wenn wir zu einer Begriffs-
definition gelangen könnten, die von allen Projektteilnehmern getragen wird!

Zielsetzung dieses Wiki-Beitrags

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.

  • Bemerkung: Die Entwicklung und Nutzung informationstechnischer Systeme ist grundsätzlich mit einem Verbrauch von Ressourcen (Energie, Rohstoffe etc.) verbunden. Insofern stellt sich die Frage, ob und ggf. wie sich informationstechnische Systeme schaffen lassen, deren (umfassend betrachtete) Auswirkung auf die Umwelt positiv ist.

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."

Wir haben die Definition (vorläufig)leicht abgeändert:

  • (Integrativ-) Nachhaltige Software zeichnet sich dadurch aus, dass die direkten und indirekten negativen Auswirkungen auf Gesellschaft, Mensch und Umwelt, die sich aus der Entwicklung, dem Betrieb und der Verwendung der Software ergeben, minimal sind. Zudem sollen sich mit Blick auf eine (integrativ-) nachhaltige Entwicklung durch die Software langfristig positive Auswirkungen ergeben.

Unter "langfristig positiven Wirkungen" verstehen wir dabei im ENE-Projekt (mit der Zielsetzung einer Integrativen Nachhaltigkeit) eine Entwicklung, die den Einklang von Mensch, Gesellschaft und Natur im Sinne eines "bien vivir" unter Einhaltung natürlicher Stoffkreisläufe und frei von irreversiblen Änderungen anstrebt; siehe auch Schweizer-Ries (2013). Technologie im Allgemeinen und insbesondere auch informationstechnische Systeme sehen wir dabei als treibenden Faktor zur Entwicklung von Hilfsmitteln und Vorgehensmodellen zur Unterstützung und Förderung nachhaltiger Lebensweisen. (An dieser Stelle sind wir Technik-gläubig.)

Was verstehen wir unter "nachhaltiger Software-Entwicklung"?

Eine explizite Definition des Begriffs der "nachhaltigen Software-Entwicklung" ist verzichtbar, denn oben stehende Definition für "nachhaltige Software" beinhaltet bereits den Entwicklungsprozess. Trotzdem lohnt sich an dieser Stelle eine abstrakte Sicht auf unser Tun als Software-EntwicklerIn.

Software-Entwicklung als Transformationsprozess

Prinzipiell lässt sich die Entwicklung und die sich anschließende Nutzung von Software als eine Transformation von menschlichem Wissen und Daten (Software = Daten im Sinne von Neumanns) in neues Wissen (z. B. Handlungswissen) und weitere Daten (u. a. Software) ansehen. Dieser Transformationsprozess, der mit einem Austausch von Mensch, Gesellschaft und Natur einher geht, bedarf der Zufuhr geeigneter materieller und energetischer Ressourcen, die im Rahmen der Entwicklung und des Betriebs der Software ebenfalls transformiert werden, z. B. für die Hardware benötigte Rohstoffe und elektrische Energie in Elektronik-Schrott, CO2 und Abwärme.

Mit Blick auf eine Integrative Nachhaltigkeit lässt sich fordern: Der Wissensgewinn sollte größer sein als der irreversibel transformierte Anteil der eingesetzten energetischen und materiellen Ressourcen. -> Zumeist wird ein Gegeneinanderabwägen der (schwer quantifizierbaren) Größen erforderlich sein.

Ungeachtet dessen und angesichts der Diskussion der gegenwärtigen Umweltprobleme lässt sich an dieser Stelle die Notwendigkeit einer "Dematerialisierung" und "Dekarbonisierung" der bestehenden Software-Entwicklungsprozesse (deren Output in der stets erneuerbaren Ressource "Wissen" besteht) konstatieren.

Fazit und Ausblick

  • Der Begriff der "nachhaltigen Software" ist nicht gleichbedeutend mit dem der "effizienten Software".
  • Die Betrachtungen sind nicht auf einzelne Maßnahmen und Software-Merkmale zu beziehen. Vielmehr muss die Gesamtbilanz positiv im Sinne einer nachhaltigen Entwicklung sein. Hier werden Methoden zur Bewertung der Nachhaltigkeit von Software und Software-Engineering-Prozessen benötigt.
  • Open-Source-Software kann nennenswerte positive Beiträge zur Erreichung des Nachhaltigkeitsziels leisten. Auch proprietäre "Closed-Source"-Software kann allerdings durchaus nachhaltig sein (und fungiert darüber hinaus zumeist als treibende Kraft und Ideengeber für innovative Software-Anwendungen).
  • Ziel weiterer Aktivitäten im Umfeld "Nachhaltige Software-Entwicklung" sollte eine Sensibilisierung der Software-EntwicklerInnen für dieses aus global wichtige Thema sein.

Es bleiben jedoch zahlreiche Fragestellungen, die es im Rahmen einer angewandten Forschung zu untersuchen gilt:

  • Wie lässt sich der Grad der Nachhaltigkeit von Software-Entwicklungsprozessen praktisch bewerten (messen)?
  • Lässt sich der energetische und materielle Bedarf zur Durchführung von Software-Projekten (inklusive aller "Nebenkosten") quantifizieren? In welchem Verhältnis steht dieser Bedarf zu dem erzielbaren Software-Nutzen?
  • Welche praktisch anwendbaren Leitsätze (und Kriterien) lassen sich für hinsichtlich der Nachhaltigkeitsziele positive 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")?
  • Wie lassen sich Software-technische Artefakte durch Nicht-IT-Spezialisten (z. B. in strukturschwachen Regionen dieser Erde) besser in Wert setzen?
  • Auf welche Weise können mobile Web-Anwendungen als wesentliche unterstützende Elemente für den Übergang in nachhaltigere Lebensweisen (hier wie in strukturschwachen Regionen) dienen?
  • Welche Abhängigkeiten bestehen zwischen Software-Herstellung, Software-Nutzung und global gerechter Ressourcen-Verteilung?
  • Software operiert auf Daten. Welche Anforderungen ergeben sich (über den Software-Aspekt hinaus) an eine nachhaltige Datenerfassung, -haltung und -bereitstellung?
Diese spannende Liste gerne diskutieren/ergänzen!

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.
  • Hilty, L. M. & W. Lohmann (2011): The Five Most Neglected Issues in "Green IT". CEPIS Upgrade, XII(4), Oct. 2011, pp. 11–15.
  • Martens, J. & K. Schilder (2012): Sustainable Development. In J. Krieger, ed.: The Oxford Companion to Comparative Politics, 2nd ed., Oxford: Oxford University Press, pp. 813-815.
  • Naumann, S., M. Dick, E. Kern & T. Johann (2011): The GREENSOFT Model: A Reference Model for Green and Sustainable Software and ots Engineering. Sustainable Computing: Informatics and Systems.
  • 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.
  • Schmidt, B. & A. Wytzisk (2014): Software Engineering und Integrative Nachhaltigkeit. In E. Plödereder, L. Grunske, E. Schneider & D. Ull, Hrsg.: Proceedings INFORMATIK 2014, Stuttgart, 22.–26.09.2014, Lecture Notes in Informatics (LNI), Vol. P-232, pp. 1935-1945.
  • Schweizer-Ries, P. (2013): Theroethical Reflections and Research Experiences. IAPS Bulletin 40, Autumn 2013, pp. 9-12.