23.08.2021
Leitfaden: Software Ressourceneffizient entwickeln
Wie können Software Engineers mit mehr Rücksicht aufs Klima programmieren? Ein Leitfaden des Bitkom zeigt, wie Ihr Ressourceneffizienz, Nachhaltigkeit, und Langlebigkeit in der Software-Programmierung steigern könnt. Unser Nachhaltigkeitsexperte Duc Nguyen ist Mitglied im Bitkom-Arbeitskreis „Ressourceneffiziente Programmierung“, der den gleichnamigen Leitfaden veröffentlichte. Er brachte seine Expertise mit in den Leitfaden ein. Hier geben wir euch einige praxisnahe Tipps weiter.
Viele Studien zeigen: Software ist für einen wachsenden Anteil an CO2-Emissionen verantwortlich. Ob bei der Entwicklung, der Nutzung oder dem Hosting – große Datenmengen zu verarbeiten, benötigt viel Energie. Dennoch schenken Software Engineers dem Thema Ressourceneffizienz bisher noch kaum Beachtung. Dabei gibt es Potenzial, wie auch Duc weiß: „Effiziente Programmierung kann den Energieverbrauch und damit den CO2-Ausstoß senken und natürliche Ressourcen schonen. So können wir als Software Engineers einen wesentlich Beitrag zu mehr Klimaschutz leisten“. Folgende Aspekte bieten Euch Ansatzpunkte für ressourcenorientierte Entwicklung.
Potenziale aufdecken
Integriert Nachhaltigkeit von Anfang an als nichtfunktionale Anforderung ins Projekt. Die Weichen für mehr Nachhaltigkeit werden gestellt, bevor überhaupt eine Zeile Code geschrieben ist: Mit einer Potenzialanalyse und der Wahl der richtigen Programmiersprache. Denn letztere hat den größten Einfluss auf die Energieeffizienz. Dabei zeigen Studien: Meistens ist die Sprache, mit der sich der konkrete Anwendungsfall am schnellsten umsetzen lässt, auch die energieeffizienteste.
Effizient entwickeln
Von Abwärtskompatibilität über minimale Datenübertragung bis zu schlanker Programmierung – der Leitfaden hält konkrete Tipps für euch bereit, wie ihr eine Software und ihre Architektur möglichst nachhaltig gestaltet. Ein Großteil der Energie lässt sich bei der Laufzeit einsparen. Code auszuführen, verbraucht Energie. Daher solltet ihr immer hinterfragen, welche Berechnungen wann wirklich notwendig sind – und auf Berechnungen auf Vorrat verzichten. Programmiert Software so, dass Anwender den Energieverbrauch selbst steuern und beispielsweise unnötige Features deaktivieren können. Versucht außerdem mit Hilfe von Caches oder Buffers den Datenfluss gering zu
halten. Nicht nur in der Laufzeit, auch in der Entwicklung selbst könnt ihr die Umwelt im Blick behalten, beispielsweise durch die Wahl der richtigen Entwicklungswerkzeuge. Bei inkrementellen Compilern, automatischer Testausführung oder Continuous Development löst ihr mit jedem Commit eine Vielzahl an Hintergrundprozessen aus. Auf diese Tools solltet ihr natürlich nicht verzichten müssen. Aber achtet darauf, die CI/CD-Pipeline passend zu konfigurieren: Wie oft sind energieintensive Integrationstests erforderlich? Müsst ihr bei jeder kleinen Änderung einen automatischen Durchlauf der kompletten Testsuite veranlassen?
Rahmen schaffen
Um nachhaltiges Software Engineering dauerhaft im Unternehmen zu verankern, müssen Entscheidungstragende den richtigen organisatorischen Rahmen schaffen. Nicht selten kommt es in Software-Projekten zu Konflikten hinsichtlich der Ziele, Zeit, Kosten und Qualität: Optimiert man eine Software, damit sie effizienter läuft, oder nimmt man einfach einen größeren Server? Konflikte wie diese gilt es frühzeitig aufzudecken und zu diskutieren. Betrachtet Ressourceneffizienz dabei nicht einfach als ein weiteres Projektziel. Zeigt vielmehr auf, wie sich dieser Aspekt auch auf andere Projektziele wie Kundenzufriedenheit und Betriebskosten auswirken kann.
Erfolg messen
Den Erfolg eurer Maßnahmen solltet ihr regelmäßig messen. Doch wie geht das am besten? Darüber lässt sich sicher ausgiebig streiten. Daher lautet der erste und wichtigste Tipp: Nicht in Diskussionen über die richtigen KPIs verstricken, sondern das Messen so einfach wie möglich machen. Nutzt dafür am besten Proxy-Werte. Das sind Werte, die das zu messende Ziel indirekt abbilden und sich meist leichter ermitteln lassen als direkte Werte. Beispielsweise lässt sich der CO2-Ausstoß direkt nur schwer ermitteln – nicht so jedoch der Stromverbrauch. Ein hoher Stromverbrauch ist meist mit einem hohen CO2-Ausstoß verbunden. Daher bietet er sich als Proxy-Wert für CO2-Emissionen an.
Tue Gutes und spricht darüber
Nachhaltigkeit wird mehr und mehr zum Verkaufsargument – nicht nur B2C. Auch B2B-Kunden achten beim Einkauf Ihrer Software immer stärker auf diese Aspekte. Wer nachhaltig entwickelt, sollte sich dies daher auch nach außen bestätigen lassen. Eine Möglichkeit hierfür ist der Blaue Engel – ein Umweltzeichen, das vom Bundesministerium für Umwelt, Naturschutz und nukleare Sicherheit sowie vom Umweltbundesamt vergeben wird. Seit kurzem gibt es den Blauen Engel nicht nur für Hard- sondern auch für Software. Er zertifiziert Software-Produkte, die sparsam mit Hardware-Ressourcen umgehen und wenig Energieverbrauch aufweisen.
Weitere Tipps rund um ressourceneffiziente Programmierung könnt Ihr im gleichnamigen Bitkom-Leitfaden nachlesen. Ihr könnt ihn bei der Bitkom kostenlos downloaden. Einen raschen Überblick mit konkreten Hinweisen und Tipps liefert ein Cheat Sheet.
Weitere Infos
- Sustainable UX
- Sustainability Opportunity Canvas
- Warum Digitalisierung ohne Nachhaltigkeit nicht funktioniert
- Euro vs. Karma: Sind nachhaltige Unternehmen erfolgreicher?
- Sustainable UX: Alter Wein in neuen Schläuchen?
- Warum von Barrierefreiheit jeder profitiert
- Bitkom-Leitfaden: Software Ressourceneffizient entwickeln
- UID Projekt: Freie Fahrt voraus: mehr Sicherheit und Komfort für Radfahrende
- Wie Frauen in Medizin und UI-Gestaltung besser einbezogen werden können
- Unternehmensstrategien mit UX entwickeln