25.05.2023
Nachhaltigkeit ist ein Wert, der in allen Lebensbereichen immer wichtiger wird, auch in der Welt der Software-Entwicklung. Die “grüne” Software-Entwicklung zeigt uns Strategien und Denkweisen, unsere Applikationen nicht nur umweltschonender, sondern gleichzeitig auch günstiger und robuster zu gestalten.
Obwohl der Energieverbrauch im digitalen Bereich hauptsächlich durch den Einsatz von Hardware entsteht, wird dieser doch zu einem großen Teil von Software ausgelöst. Software nimmt also einen entscheidenden Einfluss auf deren Energieeffizienz. Eine umweltbewusste Einstellung bei der Entwicklung einer Applikation leistet einen bedeutenden Beitrag unsere Umwelt zu schützen. Grüne Software-Entwicklung möchte die Umweltbelastung in Form von Energieverbrauch, Treibhausgasemissionen und CO₂-Fußabdruck durch unsere Softwareprodukte minimieren, indem es nachhaltige Softwareentwicklungspraktiken, Architektur und Hardware in im Entwicklungsprozess einbringt.
Die Bereitschaft unsere Arbeit grüner zu gestalten ist oft da, doch welche konkreten Schritte können Entwickler tun, um ihre Applikationen bewusst nachhaltiger zu gestalten? Welche Kriterien machen eine Software umweltverträglich? Und sind diese überhaupt messbar?
Nachhaltigkeit in der Software-Entwicklung ist eigentlich kein neuer Gedanke. Der Fokus hat sich allerdings von den Bereichen Wirtschaftlichkeit und Änderungsfreundlichkeit nun ebenfalls auf den Bereich des Umweltschutzes ausgeweitet. Oft wird bei „Grüner Software“ zuerst an Software gedacht, deren primäre Aufgabe es ist, Prozesse im Sinne des Umweltschutzes zu verbessern. Dass auch die Architektur und der Entwicklungsprozess einer beliebigen Software nachhaltig sein kann, ist ein eher neuer Gedanke.
Seit 2021 beschäftigt sich die „Green Software Foundation“, eine Non-Profit-Organisation, damit unter anderem Netzwerke, Guides, Design Patterns und Werkzeuge zu erarbeiten, um nachhaltige Softwareentwicklung für Entwickler und Entwicklerinnen zugänglich zu machen. Ein Ergebnis dieser Bemühungen sind acht fundamentale Prinzipien für die Grüne Software-Entwicklung:
Networking: Reduce the amount of data and distance it must travel across the network
Eine eher unsichtbare Umweltbelastung besteht im Internet selbst. Das Internet besteht aus einem weltweiten Netzwerk von Geräten, welche zusätzliche Energie verbrauchen. Jede Anfrage über das Internet verursacht Energieverbrauch. Wie groß dieser ist, hängt vor allem von der Distanz zwischen Client und Server ab, wie viele Netzwerkgeräte die Anfrage weiterleiten müssen, wie diese betrieben werden etc. – aber auch von dem verwendeten Protokoll.
Eine ressourceneffiziente Software sollte also unnötigen Datentransfer vermeiden, sowie die passenden Protokolle wählen, um Daten möglichst effizient zu übertragen.
Demand Shaping: Build carbon-aware applications
Demand Shaping beschäftigt sich mit der Praxis den Service, bzw. die Qualität des Service umgekehrt an die Nachfrage anzupassen. Video Conferencing Software beispielsweise reduziert die Videoqualität und priorisiert Audioübertragung zu Zeiten hoher Auslastung. Diese Methodik kann verwendet werden, um Applikationen umweltfreundlicher zu gestalten.
So kann die User-Experience angepasst werden, wenn die Kosten des Betriebs zu hoch werden. Da es hier bisweilen zu Kosten in der Verwendbarkeit kommt, kann ein „Eco-Mode“ auch als bewusste Entscheidung während der Verwendung angeboten werden.
Measurement & Optimisation: Focus on step-by-step optimisations that increase the overall carbon efficiency
Es ist nicht notwendig, alle Eventualitäten aus dem Vorhinein abzuwägen. Einzelne bewusste Entscheidungen können bereits einen großen Unterschied machen. Wichtig ist es vor allem, Entwicklungen zu beobachten und kontinuierlich Schritt für Schritt Verbesserungen einzubringen. Diese Vorgehensweise ist nicht nur im Sinne der Nachhaltigkeit, sondern sorgt gleichzeitig auch für eine anpassungsfähige Software mit einer proaktiven Wartung.
Wer eine umweltfreundliche Software möchte, muss bei ihrer Entwicklung viele Parameter im Blick behalten und sich Gedanken über Möglichkeiten und Trade-offs machen. Ein großer Faktor bei diesen Entscheidungen spielt auch die Frage nach den Kosten dieser Veränderungen. Tatsächlich decken sich viele der Merkmale einer umweltschonenden Software aber mit denen einer qualitativ hochwertigen und im Betrieb sehr günstigen Software.
Dadurch, dass bewusst Ressourcen eingespart und achtsam eingesetzt werden, können die Betriebskosten gesenkt werden. Da potenziell weniger physische Server, Arbeitsspeicher und Rechenleistung benötigt werden. Die Benutzererfahrung muss unter solchen Einsparungen meist nicht leiden – im Gegenteil. Eine effiziente Software ist für gewöhnlich schneller, zuverlässiger und belastet die Geräte der Nutzenden weniger. Die Priorisierung von Ressourceneffizienz lenkt den Fokus zurück auf die Kernfunktionalität eines Produkts und so zu Verbesserungen im UX Design führen, indem überflüssige Elemente identifiziert und eliminiert werden.
Der bewusste Umgang mit Ressourcen und deren Monitoring führt zu einer zuverlässigen, sicheren, langlebigen und anpassungsfähigen Software. Die leicht höheren Kosten, die bei der initialen Entwicklung der Applikation möglicherweise anfallen, können also als Investition in eine zukunftsstarke Software betrachtet werden.
Yvonne Marneth, BSc ist Software Developer in der Unit Domain-specific Applications der RISC Software GmbH.
RISC Software GmbH
Softwarepark 32a
4232 Hagenberg
www.risc-software.at
Das könnte Sie auch interessieren: