Green Software Guide - Alles Wichtige auf einen Blick
Die IT- und Software-Industrie ist für ca. 4 Prozent der globalen CO₂-Emissionen verantwortlich - und damit für doppelt so viel wie die gesamte Luftfahrt - Tendenz stark steigend. Die Emissionen entstehen vornehmlich durch den Betrieb von Software auf Servern und Endgeräten. Als Akteure der Digitalisierung verfügt die Software-Industrie jedoch auch genau über die Tools und Praktiken, um mit Green Software die Emissionen deutlich zu minimieren - und die IT grüner zu machen.

Was ist Green Software Development?
Unter Green Software Development (auch „Green Coding“, „Green Software Design“, „Green Software Engineering“, oder „Green IT“ genannt) wird die Entwicklung von Software verstanden, die den Energieverbrauch und die CO₂-Emissionen während des Betriebs minimiert – ohne jedoch deren Funktionalität zu beeinträchtigen. Der Fokus liegt hierbei auf effizienter Programmierung, ressourcenschonender Nutzung von Hardware und der bewussten Gestaltung von Softwarearchitekturen.
Das bedeutet, dass die Software so gestaltet und entwickelt wird, dass sie so wenig Ressourcen wie möglich für CPU, GPU und Speicher benötigt. Darüber hinaus gilt: Da der Ressourcenverbrauch und die CO₂-Emissionen abhängig von der Last sind, kann die Software so gestaltet werden, dass sie ihren Ressourcenverbrauch dynamisch anfordern und auch freigeben kann. Nicht benötigte Funktionalität erfordert dann auch keine Ressourcen. So kann der Energieverbrauch und die CO₂-Emissionen von Software deutlich reduziert werden.
Green Software Development leistet damit einen wichtigen Beitrag, um die negativen Auswirkungen von Software auf Umwelt und Klima zu minimieren.
Was sind die Quellen der Emissionen?
Der IT-Sektor trägt mit insgesamt 4 Prozent einen erheblichen Anteil aller weltweiten CO₂-Emissionen bei. Um ein Verständnis für Green Software zu entwickeln, ist es wichtig zu verstehen, woher diese CO₂-Emissionen stammen [1].
Was genau verursacht den CO₂-Fußabdruck der Software-Industrie?
Der CO₂-Fußabdruck der IT-Branche wird durch zwei Emissionsquellen hervorgerufen: Das sind zum einen Emissionen, die während des Betriebs von Software ausgestoßen werden. Zum anderen sind dies Emissionen, die bereits entstanden sind, um die Hardware und Infrastruktur herzustellen. Diese werden „gebundene Emissionen“ (oder im englischen „Embodied Carbon“) genannt. Im Kontext von Klimaberichten sind das Scope 3-Emissionen.
Die Emissionen beim Betrieb von Software entstehen durch das Erzeugen von Strom. Je höher dabei der Anteil an fossilen Primärenergieträgern ist, desto höher sind die Emissionen. Das Maß hierfür ist die Grid Carbon Intensity, der Emissionsfaktor für Strom. In Deutschland [2] beträgt dieser im Jahresschnitt 381 gCO2e/kWh, im Gegensatz zu Norwegen mit 30 gCO2e/kWh oder Polen 662 gCO2e/kWh. Im Kontext von Klimaberichten sind das Scope 2-Emissionen.
Mit welchen Strategien wird Green Software umgesetzt?
Green Software wird insbesondere duch die Umsetzung der vier folgenden Strategien erreicht:
- das Minimieren von Hardware durch das Maximieren der Server-Auslastung,
- das Umsetzen von dynamischer Skalierung,
- das Minimieren von Hardware-Anforderungen sowie
- den Einsatz von Tools, Bibliotheken und Daten für Carbon Aware Computing.
Eine auf Green Software Development ausgerichtete Softwareentwicklung zielt darauf ab, diese Strategien zu unterstützen. Diesen Prozess zu steuern, ist Aufgabe der Green IT-Beratung bzw. der Green Software Consultants.
Sie finden das Thema spannend und wollen mehr darüber erfahren, dann lassen Sie uns gerne sprechen.
Warum Green Software die Zukunft ist
Um die Klimakrise zu bewältigen, ist es erforderlich, dass jeder Sektor, wie zum Beispiel Gebäudewirtschaft, Verkehr, Landwirtschaft oder Energiewirtschaft, seine Emissionen massiv reduziert. Nur so können die Ziele des Pariser Klimaabkommens eingehalten werden.
Die Emissionen des ITK-Sektors, das heißt der Softwareindustrie, ist mit 2 Milliarden Tonnen CO2e [3] mit den weltweiten Emissionen von Stahlindustrie [4] und Luftfahrt gemeinsam, vergleichbar. Im Gegensatz zur Stahlindustrie sind die Reduktionsmaßnahmen in der IT jedoch deutlich einfacher umzusetzen, zum Beispiel mit Hilfe geeigneter Tools für Pionier:innen, mit denen Carbon Aware Computing gelingt. Darunter versteht man, dass der Ausführungszeitpunkt einer Anwendung auf den Zeitpunkt verschoben wird, wenn das Stromnetz hauptsächlich mit regenerativ erzeugter Energie betrieben wird.
Wie viele Praxisbeispiele zeigen, können bereits mit einfachsten Maßnahmen, so genannten Quick Wins oder Low Hanging Fruits, rund 40 Prozent der Emissionen eingespart werden.
Welche Aspekte sprechen für Green Software?
Green Software senkt den Ressourcenverbrauch und verursacht niedrigere CO₂-Emissionen. Und leistet damit einen aktiven Beitrag zur Einhaltung des 1,5 Grad-Ziels des Pariser Klimaabkommens. Daraus lassen sich vielfältige positive Aspekte damit verbinden, in Sachen Nachhaltigkeit, Effizienz, aus unternehmerischer Sicht und darüber hinaus.
- Green Software benötigt weniger elektrische Energie: Dies führt zu weniger CO₂-Emissionen und sorgt dafür, dass der Ausbau der erneuerbaren Energien nicht durch die Digitalisierung aufgebraucht wird.
- Green Software senkt die Hardware-Kosten: durch einen verbesserten Hardware-Einsatz und die damit verbundene längere Nutzung müssen weniger Hardware-Komponenten gekauft werden. Durch den Fokus auf minimalen Ressourcenverbrauch führt Green Software zudem zu einer deutlich verbesserten Serverauslastung, so dass in Summe deutlich weniger Hardware betrieben werden muss. Unternehmen können ihre IT-Budgets effizienter einsetzen.
- Green Software senkt die Betriebskosten: Im On Prem-Betrieb (das heißt im eigenen Rechenzentrum) kann Green Software zu Einsparungen bei den Stromkosten führen. Geringere Stromkosten können zudem durch das Ausnutzen von dynamischen Stromtarifen (siehe Time-Shifting [5]) entstehen. In der Cloud ergibt sich die Kostenersparnis sofort und direkt, da in der Regel die Kosten an die Nutzung von Ressourcen gekoppelt sind.
- Green Software minimiert die gebundenen Emissionen: Durch effizientere Nutzung wird weniger Rechenleistung benötigt, weshalb insgesamt weniger Hardware-Komponenten produziert werden müssen.
- Green Software ist performanter, was zu einer höheren User-Akzeptanz führt.
- Green Software ist transparenter: Green Software sorgt für Transparenz über den Ressourcenverbrauch einer Anwendung (zum Beispiel Nutzung von Energie aus nachhaltig erzeugter Stromgewinnung - Software Carbon Intensity). Das unterstützt sowohl das Nachhaltigkeits-Reporting als auch die Nachhaltigkeits-Bestrebungen eines Unternehmens.
- Mit Green Software werden regulatorische Anforderungen erfüllt: Tragen Software und IT maßgeblich zur Wertschöpfung bei, müssen sie beim ESG-Reporting berücksichtigt werden. Green Software leistet dann einen relevanten Beitrag, um die Nachhaltigkeitsziele einzuhalten.
- Green Software sorgt für Zukunftssicherheit: Green Software Development verwendet die gleichen Praktiken und Regeln wie gutes Software-Engineering - erweitert um den Aspekt der Nachhaltigkeit. Nachhaltige Software ist evolvierbar und schützt somit bestehende Investitionen.
- Green Software trägt zu einem positiven Markenimage bei: Unternehmen, die auf Green Software setzen, unterstreichen ihr Engagement für Nachhaltigkeit.
- Green Software stärkt den Teamgeistes durch gemeinsames, sinnstiftendes Handeln.
Was sind die Herausforderungen von Green Software?
Um die Emissionen von Software zu verringern, sind vor allem technische und organisatorische Herausforderungen zu lösen.
Da Anwendungen in der Regel nicht konstant über den Tag genutzt werden/laufen, muss die Software eine dynamische Skalierung implementieren. Wird der Server nicht genutzt, kann er abgeschaltet werden und der Stromverbrauch sinkt.
Technische Herausforderungen
- Nicht alle Teams und Softwareentwickler:innen haben das Wissen und die Erfahrung, um ressourceneffizient zu entwickeln. Das Einbauen von Caching, das Setzen von Datenbank-Indizes, das Erkennen von Bottlenecks oder Containerisierung erfordert eine gewisse Seniorität.
- Das dynamische Skalieren mit Kubernetes oder anderen Technologien (zum Beispiel Scale Sets in Azure) erfordert spezielle Kenntnisse über verteilte Anwendungen.
- Es gibt einige Hosting-Umgebungen, die keine Dynamik unterstützen. So können Server oder VM nicht aus- oder eingeschaltet werden.
Organisatorische Herausforderungen
- Falsche Mythen oder Glaubenssätze wie etwa, dass für Green Software Development die gesamte Software umgeschrieben werden muss oder dass bei Java, .Net, TypeScript oder Python sowieso alles verloren ist.
- Eine fehlende DevOps-Kultur: Gerade in größeren Unternehmen sind die Entwicklung und der Betrieb stark voneinander getrennt. Beispielsweise sieht der Betrieb zwar die nicht ausgelasteten Server, kennt aber die Anwendung nicht.
- Eine falsche Hosting-Umgebung und die Scheu, auf einen moderneren Provider mit mehr Kontrollmöglichkeit zu wechseln: etwa von einer Co-Location zu einem Managed Provider mit automatischen Skalierungsmöglichkeiten. Durch diesen Wechsel wäre auch eine deutliche Kostenreduktion möglich.
- Unkenntnis und/oder Bequemlichkeit: Oft werden Test- und Abnahmesysteme oder CI/CD-Umgebungen nicht abgeschaltet, obwohl sie nur sehr selten benötigt werden.
- Nicht Teil der Unternehmenskultur: Nachhaltigkeit ist - ähnlich wie Agilität oder Software Craftsmanship - ein Bestandteil der Unternehmenskultur. Und genauso wie Agilität beziehungsweise Clean Code zu einer Transformation der Organisation führt, ist das auch bei Green Coding der Fall.
Werden diese organisatorischen und technischen Herausforderungen nicht gemeistert, führt das zu überdimensioniert provisionierten Anwendungen. Was „überdimensionert“ bedeutet, zeigt ein Vergleich aus dem Bereich Mobilität: das ist, als ob wir dauernd mit einem 9-Sitzer-Auto unterwegs sind, obwohl nur ganz selten mehrere Personen mitfahren. Und wird dieses Auto dann geparkt, bleibt der Motor an. Der Ressourcenverbrauch ist enorm. Überdimensionierte Anwendungen sind heute noch die Regel.
Hier bietet Green Software vielfältige und einfach umzusetzende Möglichkeiten, um den Ressourcenverbrauch und die CO₂-Emissionen von Anwendungen deutlich zu senken.
Wofür eignet sich Green Software
Nachhaltige Softwareentwicklung zieht sich durch alle Lebenszyklen und Phasen einer Softwareanwendung und betrifft nicht nur das Codieren.
Requirements Engineering
Bereits bei der Product Discovery und beim Anforderungsmanagement können Nachhaltigkeitsaspekte berücksichtigt werden. So können beispielsweise Prozesse asynchron und zeitverzögert gestaltet werden, das heißt die Prozesse werden temporal entkoppelt. Das macht es möglich, Teilsysteme unterschiedlich zu skalieren bzw. Batch-Prozesse genau dann auszuführen, wenn der Strom vornehmlich durch erneuerbare Energien produziert wird. Das International Requirements Engineering Board (IREB) erstellt gerade neue Regeln, welche die Nachhaltigkeit widerspiegeln.
User Experience und User Interface (UX und UI)
Durch das Gestalten der Benutzerinteraktion können Funktionalitäten so gruppiert werden, dass die Skalierung besser gelingt und nur selten benötigte Bereiche nur auf Anforderung ausgeführt werden. So müssen etwa Berichte, Statistiken oder alte Bestellungen nicht permanent aktuell vorgehalten werden. Das heißt konkret: Was nicht benötigt wird, muss nicht erstellt werden. Beim Design von Benutzeroberflächen kann die Datenübertragungsmenge und die Anforderungen an das Benutzerendgerät reduziert werden. Durch diese beiden Maßnahmen können deutlich Emissionen eingespart werden. Mit Sustainable UX [5] wird dieser Aspekt beschrieben.
Entwicklungsprozesse, Product Owner, Scrum Master
Heute bestimmen agile Entwicklungsprozesse den Alltag der Softwareentwickler:innen. Die Rollen „Product Owner“ und „Scrum Master“ sorgen dabei für eine reibungslose Entwicklung. Im Kern geht es darum, das Richtige richtig zu entwickeln. Die Personen, welche diese Rollen ausfüllen, befinden sich in einer klassischen Sandwich-Position und müssen ständig vielfältige Interessen berücksichtigen. Die Awareness für Green Software und somit ressourcensparende und klimafreundliche Anwendungen muss hier berücksichtigt werden. Die Green PO Community [6] leistet hier Pionierarbeit.
Qualitätssicherung, Test- und Abnahmesysteme, CI/CD
Nicht nur der Betrieb der endgültigen Software verursacht Emissionen, sondern auch der Entwicklungsprozess. Nicht jeder Commit muss die gesamte Pipeline durchlaufen, Abnahme- und Test-Umgebungen werden nicht permanent (24/7) benötigt und können bei Bedarf eingeschaltet werden.
Systementwurf, Architektur, Codierung
In der Hauptphase, wenn die Anwendung entsteht, haben Architekturentscheidungen starken Einfluss auf das System. Die meisten Praktiken und Prinzipien von Green Software Development werden hier umgesetzt. Die Praktiken sind denen des Software Craftmanships sehr ähnlich, sie haben jedoch einen anderen Zweck. Das heißt eine ressourcensparende Anwendung ist auch eine performante Anwendung. Dynamische Skalierung führt zu einem günstigeren Betrieb. Ähnlich wie bei Clean Code gibt es auch hier Sammlungen und Bücher [7], um sich weiterzuentwickeln.
Betrieb und DevOps
Die Emissionen von Software entstehen durch den Betrieb von Hardware. Idealerweise sind die Entwicklungs-Teams als DevOps (GreenDevOps) aufgestellt und können die Auslastung von Hardware steuern. Falls die Entwicklung und der Betrieb getrennt sind, kann die IT-Abteilung unterstützende Maßnahmen für die Entwicklung anbieten: etwa eine API für das Skalieren, ein Reporting über den Ressourcenverbrauch oder konkrete Hinweise an das Produktmanagement, dass die Hardware nicht ausgelastet ist.
Fazit
Durch Low-Hanging Fruits können die Emissionen von Software eingespart werden. Moderne Softwareentwicklung wird neben Agilität und Software Craftmanship auch Green Coding integrieren.
Bei bluehands praktizieren wir das schon heute: In Time, in Function, in Budget und in Climate.
Und jetzt?
Sie wollen mehr über nachhaltige Softwareentwicklung erfahren?
[1] https://www.researchgate.net/publication/354512985_The_real_climate_and_transformative_impact_of_ICT_A_critique_of_estimates_trends_and_regulations
[2] https://www.sciencedirect.com/science/article/pii/S2666389921001884
[3] https://www.science.org/content/article/steel-industry-emissions-big-contributor-climate-change-can-go-green
[4] https://sustainableuxnetwork.com/
[5] https://green-po.org
[6] https://learn.greensoftware.foundation/
[7] https://www.oreilly.com/library/view/building-green-software/9781098150617/



