Was ist „Nachhaltige Software“?
Erläuterung: Wie könnte eine Definition für „Nachhaltige Software“ formuliert werden?
Beispiele für mögliche Nachhaltigkeitsaspekte:
- Energie- und Ressourceneffizienz
- Wirtschaftlichkeit
- Sozialverträglichkeit
- Kultur
- Information/Bildung
- Allgemeine Verfügbarkeit
Entkopplung Software-Erneuerung von Hardware-Erneuerung
Das ist auch meiner Meinung nach eines der drängendsten Themen.
= Software, die uns mit Blick auf die Ziele nachhaltiger Entwicklung voranbringt.
Dies erfordert eine Def. des NH-Begriffs und der Ziele (Umwelterhalt + soziale Gerechtigkeit, Effizienz-, Suffizienz- und Konsistenz-Strategie, usw.)
Abzugrenzen wären u. a. folgende Begriffe: Langlebigkeit, System-Optimierung, digitale Nachhaltigkeit (die jedoch einen positiven Beitrag zu leisten vermag).
… unter „Umwelterhalt“ fasse ich dabei Aspekte wie Klimawandel, Erhalt natürlicher Ressourcen als Lebensgrundlage etc. Die „soziale NH“ beziehe ich auch auf Dinge wie z. B. Generationengerechtigkeit, Fairtrade, Suffizienzüberlegungen, menschenverachtende Produktionsbedingungen von Hardware u.v.m. …
Hier würde ich, angelehnt an „Green by IT“ und „Green in IT“ unterscheiden zwischen „Nachhaltiger Software“ (die Nachhaltigkeit der Software selbst, bezogen auf den gesamten Lebenszyklus unter Einbezug der Nachhaltigkeitsaspekte wie bspw. Energieverbrauch (ökologisch), Arbeitsbedingungen während der Entwicklung (sozial)) und „Unterstützung der Nachhaltigkeit durch Software“, d.h. die „by“-Aspekte – wie kann eine nachhaltige Entwicklung durch Software positiv beeinflusst werden?
Genau wie BS schreibt, es sollen die Ziele definiert werden. Wenn Aspekte wie Umwelterhalt, soziale Gerechtigkeit etc. betrachtet werden, geht es um Second und Third Order Effects. Wenn allerdings nur First Order Effects in Betracht gezogen werden wird für mich die spezifischere Definition von SN sehr relevant. Hierzu könnte noch der energetische Aspekt berücksichtigt werden. D.h. Eine Nachhaltige Software ist eine Software, deren Erneuerung von der Hardware-Erneuerung entkoppelt ist und die einen hohen Grad an Energieeffizienz ermöglicht.
Prinzipiell würde ich zwischen 3 verschiedenen Aspekten von nachhaltiger Software unterscheiden:
1. Die Erstellung der Software ist nachhaltig
2. Der Gebrauch der Software ist nachhaltig
3. Die Software hat einen nachhaltigen Nutzen
zu 1. Die Erstellung ist nachhaltig, wenn viele Module aus anderen Entwicklungen weiterverwendet werden oder das erstellte Softwareprodukt in anderen Anwendungen weiterverwendet werden kann. Open Source oder Open Use Software gehört dazu. Programmierer müssen fair bezahlt werden.
zu 2. Die Nutzung der Software darf nicht zu einer übermäßigen CPU Belastung führen.
zu 3: Der Nutzen der Software ist dann nachhaltig, wenn damit Umweltinanspuchnahmen (z.B. Reisen oder CO2-Belastung) reduziert werden. Auch Software, die dazu beiträgt, dass Nutzer Erkenntnisse erlangen, die sie zu einem nachhaltigeren Verhalten veranlassen, ist nachhaltig. Letztlich ist auch jede Software nachhaltig, die direkt zum Einsparen von Umweltbelastungen beiträgt.
Diese Unterscheidung gefällt mir sehr gut!
Sie geht noch über die vorab vorgeschlagene Differenzierung zwischen „by“ und „in“ hinaus. Es gilt meiner Meinung nach jedoch zu beachten, dass Punkt 1 „Erstellung“ den 2. Punkt „Gebrauch“ beeinflussen kann. So sollte z.B. – entsprechend einer ganzheitlichen LCA-Betrachtung von Software – schon in der Entwicklungsphase der Energieverbrauch durch die Software, der eine Rolle während der Nutzungsphase spielt, bedacht werden.
Nur eine kleine Randmerkung zu 1.: Zu beachten ist, dass die Einbindung von Modulen (von denen oft nur ein kleiner Funktionsumfang tatsächlich benötigt wird und die möglicherweise transitiv von vielen weiteren Artefakten abhängen) zu relevanten Soft- und Hardware-Abhängigkeiten und somit zu unnachhaltiger Software führen kann (weil sie z. B. recht bald nur noch auf den allerneuesten Rechnern vernünftig läuft). Soll heißen: Vorzugsweise (qualitätsgesicherte) Module einbinden, dabei aber vorab die Konsequenzen bedenken!
Meiner Meinung nach sollte nachhaltige Software (nach entsprechender Klärung von Kriterien etc.) auch als solche deutlich erkennbar sein (Stichwort Labeling). Das führt zu einer Transparenz und Information, sodass auch bei denjenigen, die sich bisher wenig bis gar nicht mit der Thematik beschäftigt haben, ein Bewusstsein geschaffen werden kann.
Insbesondere die Endnutzer sehe ich als treibende Kraft, da sie als größte Gruppe effektiv Anforderungen stellen können und so in der Lage sind, eine Entwicklung hin zu einer „nachhaltigeren Softwarewelt“ voranzutreiben.
Es gilt insgesamt die negative Rolle der Software aus Sicht der Nachhaltigkeit (=> Energieverbrauch der IKT usw.) zu optimieren. Hier reicht die Sicht der Wissenschaft nicht aus, vielmehr sollten Entwickler und eben insbesondere auch Nutzer einbezogen werden.
Um insbesondere den Nutzer (aber auch den Entwickler) in einer nachhaltigen Nutzung (Enwicklung) zu unterstützen, erscheint eine Entwicklung entsprechender Werkzeuge und vor allem Handlungsempfehlungen für Nutzer (und Entwickler) sinnvoll. Hier steht wieder der Informationsaspekt im Vordergrund. Nur ein informierter Anwender (ebenso wie ein informierter Entwickler) ist in der Lage Software nachhaltig zu nutzen (bzw. zu entwickeln). Es kann über Default-Einstellungen, die eine besonders nachhaltige Nutzung ermöglichen, nachgedacht werden, da bekannt ist, dass einmal vorgenommene Voreinstellungen (bspw. hinsichtlich der Energieoptionen eines Computers) nur in den wenigsten Fällen geändert werden und ein Energiesparmodus oft nicht von selbst eingestellt wird. Für spezielle Fälle und bei entsprechender Expertise auf können die Einstellungen dann kurzfristig auf „weniger nachhaltig“ geändert werden.
Aus Sicht der Nutzer darf meiner Meinung nach auch der Aspekt der Akzeptanz für nachhaltige Software nicht außer Acht gelassen werden.
„Modularität“ – Software sollte derart sparsam betrieben werden können, dass sie nur an Energie verbraucht was eine Anwendung tatsächlich erfordert
„Digital Divide“ – Nachhaltige Software sollte nicht der ersten Welt oder gewissen Personenkreisen vorenthalten bleiben sondern den Zugang und die Verwendbarkeit für alle ermöglichen
„Software als Ressource / Wissen“ – Nachhaltige Software sollte zugleich die digitale Nachhaltigkeit fördern. Dazu gehören mindestens Offene Schnittstellen, Export in offene Datenformate, Plattformunabhängigkeit und die Möglichkeit eines Systemwechsels. Proprietäre Datenformate und vendor lock-ins erzeugen Insellösungen anstelle einer umfassenden Vernetzung
„Knowledge sharing“ – Frei lizensierte Software ermöglicht den Wissensaustausch über alle kulturellen und staatlichen Grenzen hinweg. „best practice“ software kann so direkt global verteilt und eingesetzt werden.
„weniger ist mehr“ – Ähnlich der „Unix-Philosophie“ die besagt
– Schreibe Computerprogramme so, dass sie nur eine Aufgabe erledigen und diese gut machen.
– Schreibe Programme so, dass sie zusammenarbeiten.
– Schreibe Programme so, dass sie Textströme verarbeiten, denn das ist eine universelle Schnittstelle.
„Plattformunabhängigkeit“ – Software sollte nicht an die Verwendung bestimmter Hardware gebunden sein.
„Offene Standards“ – Die Verwendung von offenen Datenformaten sollte bedingung für den Titel „nachhaltige Software sein“, da alles andere Monopolstellungen fördert
„Dezentrale Architektur“ – Einzelne Instanzen sollten dezentral laufen können, dies verrringert Abhängigkeit und Monopolstellungen