Digitalisierung und Nachhaltigkeit: beide Themen beeinflussen uns maßgeblich. Digitale Prozesse nachhaltig zu gestalten, ist eine riesige Herausforderung, der wir uns als Gesellschaft stellen müssen. Ein besonderer Aspekt ist die nachhaltige Entwicklung von Software. Es haben sich bereits Begriffe wie Green Coding, Green IT oder Green Software etabliert. Hinter ihnen verbirgt sich ein großes Feld an Ideen und Möglichkeiten, Software möglichst energiesparsam zu gestalten. Gleichzeitig kann man im Sinne der Nachhaltigkeit noch viele weitere Aspekte entlang der Lebensdauer der Software betrachten, von Entwicklung über Betrieb bis hin zur Stilllegung.
Nachhaltigkeit als vielschichtige Herausforderung
Bei näherer Beschäftigung mit dem Thema wird schnell klar, dass es nicht eine Liste von Maßnahmen gibt, die abgearbeitet werden kann, um Software nachhaltig zu gestalten. Schön wär’s, aber so einfach ist es leider nicht. Der Energieverbrauch von Software wird von vielen verschiedenen Faktoren beeinflusst. Bereits die Auswahl der Programmiersprache kann einen maßgeblichen Einfluss haben. Die richtige Wahl von effizienten Datenstrukturen und Algorithmen spielt dabei ebenfalls eine große Rolle. Viele Entscheidungen müssen bereits vor der ersten Zeile Code getroffen werden. Aber auch während der Entwicklung müssen immer wieder Entscheidungen getroffen werden, damit neue Features unter Berücksichtigung nachhaltiger Aspekte entstehen.
Die richtigen Entscheidungen zu treffen, ist dabei eine sehr komplexe Aufgabe. An vielen Punkten fehlt uns schlicht die Transparenz: wie sehr tragen einzelne Softwarekomponenten zum eigentlichen Verbrauch des Rechners bei? Wie können wir diese Dinge einerseits im Detail messen, um Schwachstellen schnell aufzudecken, und andererseits die Effizienz der gesamten Architektur im Blick behalten? Es fehlt an Lösungen und ökonomisch gibt es kaum Anreize. Genug Entwickler:innen auf die Bahn zu kriegen, um aktuelle Softwareprojekte voranzutreiben, ist schon Aufwand genug.
Ähnlich sieht es beim Betrieb von Software aus. Die Frage, wie eine Software gehostet wird, ist oftmals eher von Themen wie Datenschutz, Verfügbarkeit und Kosten getrieben. Nachhaltigkeitsaspekte spielen, wenn überhaupt, eine untergeordnete Rolle. Die allermeisten Anbieter stellen notwendige Informationen kaum zur Verfügung.
Praktische Ansätze für eine nachhaltige Softwareentwicklung
Dennoch gibt es auch schon vieles, was wir wissen und was in unserem Alltag regelmäßig zum Einsatz kommt. In der konzeptionellen Arbeit können Nachhaltigkeitsaspekte von Anfang an mitgedacht werden. Software sollte genau ihren Zweck erfüllen, fehlerhafte Anforderungen führen zu unnötigen Entwicklungsaufwendungen. Gleiches gilt für obsolete Anforderungen: nicht mehr gebrauchte Features können abgeschaltet oder ausgebaut werden.
Moderne Softwarearchitekturen beinhalten übersichtlich geschnittene und abschaltbare Programmteile. Cloudarchitekturen haben genau hier ihre Stärken und sind in neuen Projekten oftmals gesetzt, Ressourcen können somit nach Bedarf hinzugebucht werden. Was nicht heißen muss, dass On-Premise-Lösungen immer die schlechteren sind, der Teufel liegt leider oft im Detail. Last but not least sind Clean Code Prinzipien schon seit vielen Jahren präsent. Sie unterstützen dabei, wartungsarme und langlebige Software zu entwickeln, die dauerhaft aktuell gehalten werden kann.
Um eine möglichst nachhaltige Softwareentwicklung zu erreichen, können auch langfristig Standards oder Vorgaben etabliert werden. Bestehende Initiativen und Forschung müssen sich weiterentwickeln, um einen Konsens darüber zu entwickeln, was nachhaltige Software ausmacht und wie dies auch gemessen werden kann.
Fazit: Der Weg in eine nachhaltige Zukunft
Wir stehen bei dem Thema nachhaltige Softwareentwicklung noch am Anfang. Es gibt ein enormes Potenzial und eine gesellschaftliche Notwendigkeit, um die Umweltauswirkungen von Technologie zu verbessern. Vieles, was wir im Entwicklungsalltag leben, kann schon unter Nachhaltigkeitsaspekten gedacht werden. Trotzdem wollen wir uns damit nicht zufrieden geben und uns auch mit den Detailthemen beschäftigen. Auf dem Weg in eine nachhaltige Zukunft müssen wir Softwareentwickler:innen auch unseren Teil beitragen.
Autor:innen
Pia Diedam ist seit 2017 Beraterin bei der viadee. Sowohl im Kundeneinsatz als auch im internen Bereich Testautomatisierung beschäftigt sie sich schwerpunktmäßig mit der Java-Entwicklung.
Als Berater bei der viadee IT-Unternehmensberatung AG ist Steffen Ernsting schwerpunktmäßig in der Business Analyse und der Entwicklung tätig und hilft Kunden dabei, ihre Geschäftsprozesse zu optimieren und maßgeschneiderte IT-Lösungen zu entwickeln.
zurück zur Blogübersicht