Nachhaltigkeit in der Softwareentwicklung
Der Anteil der Informations- und Kommunikationstechnologie am weltweiten Stromverbrauch wird nach Expertenschätzungen in den nächsten Jahren um ein Vielfaches ansteigen. Gleichzeitig bietet kaum eine Branche so großes Potenzial, um verschiedenste Prozesse effektiver und nachhaltiger zu gestalten. Auch für SYSTHEMIS ist das Thema deshalb kein unbekanntes. Ein Gespräch mit Softwareentwickler Daniel Michel.
Branche im Wandel
Im Klimaschutzgesetz von 2021 setzt sich die Bundesregierung ehrgeizige Ziele: Bis 2045 will die Bundesrepublik treibhausgasneutral sein, also genauso viel Treibhausgas abbauen wie emittiert wird. Dass dies in den nächsten Jahrzehnten zu gravierenden Veränderungen in Wirtschaft und Industrie führen wird, ist offensichtlich. Aber was kann ein Softwarehaus da schon groß machen? Unsere Arbeit verursacht keine Abfälle, wir betreiben keine Fabrik, und es qualmen auch keine Schornsteine auf dem Dach der Mergentheimer Straße 76. Und doch gibt es vielversprechende Ideen, wie auch und gerade unsere Branche zum Wandel beitragen kann.
Grüne Logik
Green Coding ist ein sehr junger Ansatz, der sich damit befasst, die Entwicklung und den Betrieb von Software nachhaltig zu gestalten. Er zielt nicht zuletzt auf den Code selbst ab, wo der Teufel häufig im Detail steckt: schon kleinste Einsparungen in der Programmierung können – auf viele Nutzer hochgerechnet – zu gewaltigen Energieeinsparungen führen. Anwendungen von SYSTHEMIS werden im Gesundheitssektor deutschlandweit eingesetzt und täglich von tausenden Menschen genutzt. Wie wäre es also, wenn unsere Software selbst sparsam sein könnte?
Softwareentwickler und ‑Architekt Daniel Michel sieht hierzu einige Ansätze:
„Wir achten beispielsweise darauf, das Datenvolumen, das wir innerhalb von Anwendungen verschicken, zu minimieren. Wir verwenden in REST APIs JSON, keine SOAP-Webservices, die auf XML-Dateien aufbauen. Diese Reduzierung ist alleine schon aus Sicherheits- und Performancegründen wichtig und reduziert natürlich auch den Ressourcenverbrauch. Um serverseitig die CPU-Last gering zu halten, verwenden wir in unseren Datenbanken Indizes, was gerade bei Suchanfragen mit vielen Ergebnissen dazu führt, dass sie performanter laufen und nicht so viel Last brauchen. Im Angular-Bereich wiederum benutzen wir Webpack. Es unterstützt uns dabei, Bibliotheken, die nicht verwendet werden, beim paketieren auszusortieren, so dass das erzeugte Paket deutlich kleiner wird.“
Ein weiteres Schlagwort, das im Zusammenhang mit Green Coding häufig fällt, ist Zero-Waste-Code. Damit ist zum einen gemeint, Redundanzen im Code zu vermeiden, aber auch wiederverwertbaren Code zu programmieren.
„Aktuell bauen wir Blueprint-Varianten auf, um Code zu vermeiden, der nur einmalig genutzt wird. Wir erstellen also Beispiele für unsere Technologien wie Java, C# und Angular, auf deren Basis wir dann perspektivisch alle Anwendungen, die wir entwickeln, aufbauen. Sie geben uns ein Grundgerüst, von dem wir vieles wiederverwenden können. Angefangen damit, wie eine API aufgebaut ist, welche Bibliotheken wir verwenden, oder auch wie wir die Entwicklungsumgebung containerisieren.“
Grüne Methodik
Richten wir den Blick nun auf den größeren Rahmen: denn auch bei den Methoden der Softwareentwicklung gibt es Potential. Im Sinne einer grünen Methodik ist häufig die Rede von Agiler Softwareentwicklung. Damit gemeint sind Vorgehensweisen, bei denen die Entwurfsphase auf ein Mindestmaß reduziert wird, um im Entwicklungsprozess so früh wie möglich zu ausführbarer Software zu gelangen. Die SYSTHEMIS bevorzugt bei ihren Projekten ein evolutionär‑, inkrementelles Vorgehen, das auf lange Sicht nicht nur Geld, sondern auch Ressourcen sparen soll.
„Inkrementelles Vorgehen heißt, dass wir in Zyklen von ein- bis zwei Wochen arbeiten, in denen gewisse Anforderungen umgesetzt werden. Die gehen dann in die Testphase, wir kriegen relativ schnell Kundenfeedback, können Anpassungen vollziehen und somit flexibler arbeiten. Das ist zumindest die Theorie. In der Praxis ist es schwieriger. Mit einem inkrementellen Vorgehen nimmst du den Kunden mehr in die Pflicht, weil du eine Bereitschaft von ihm brauchst, flexibler Testzeit aufzuwenden. Wenn er das tut, sparen wir Zeit und Ressourcen, wenn er es nicht tut… eher im Gegenteil.“
Fazit
Nicht alles ist also grün was glänzt. Die Idee des Green Coding ist neben der Green-IT und der Green Energy nur ein Ansatz, um als Softwarehaus an der Energiewende mitzuwirken. Und es wird nicht nur für die SYSTHEMIS, sondern auch für die Branche als Ganzes noch ein langer Weg, wenn man die Softwareentwicklung auf einen nachhaltigeren, zukunftsorientierten Kurs bringen will.
„Wenn man das Konzept des Green Coding in allen Aspekten zu Ende denkt, dann haben wir als SYSTHEMIS höchstens den ersten von vielen Schritten gemacht. Die Realität in der Projektarbeit holt einen zu oft ein, und die Gegebenheiten erschweren es leider häufig, Abläufe und Methoden von heute auf morgen umzustellen.“