Blog über Software, Mensch und Persönlicher Entwicklung

Nachhaltige Software-Enwicklung - Richard Seidl

Geschrieben von Richard Seidl | 12.06.2023

Markus und Florian sprechen über verschiedene Themen rund um Nachhaltigkeit in der Softwareentwicklung. Sie erklären, was Nachhaltigkeit in diesem Kontext bedeutet und wie nachhaltige (Performance-)Anforderungen berücksichtigt werden können. Auch die Grenzen der Nachhaltigkeit werden thematisiert. Markus und Florian geben Einblicke, wie Nachhaltigkeit im Code Review implementiert werden kann und wie sie ins Testen integriert werden kann. Zum Schluss geben sie nützliche Tipps, wie man Nachhaltigkeit in einem Softwareprojekt umsetzen kann.

“Und wenn man sich überlegt: ok, einfach nur durch kleine Änderungen im Stagingsystem haben wir das eingespart- warum nicht machen?” – Markus Lachenmayr, Florian Krautwurm

Markus arbeitet seit Jahresbeginn 2023 als Lead Performance Engineer beim Process Mining Unternehmen Celonis. Zuvor war er, nach seinem Master in Software Engineering, für sieben Jahre in der zentralen Forschungs- und Beratungseinheit von Siemens tätig. Sein Fokus lag auch in dieser Zeit als NFR Engineer auf Softwareeffizienz und Skalierbarkeit. Über die Jahre forschte Markus an internen Software Qualitäts-Attributen (z.B. Testbarkeit und Wartbarkeit), über deren Einfluss das Interesse an Nachhaltigkeit von Software kam. In seiner Freizeit engagiert sich Markus als Fussballtrainer, begeistert sich für American Football, kocht und grillt gerne.

Florian arbeitet aktuell als Test Architekt in der Siemens internen Forschungs- und Beratungseinheit. In seiner Rolle hat er schon viele Innovationsprojekte operativ im Bereich Software Qualität, Cloud, Pipelining und DevOps unterstützt. Am liebsten beschäftigt er sich im Moment beruflich mit den Themen „Shift left and right“ und „Staging and Promotion“ für industriellen und kritische Systeme. Als Portfolio Manager für „Quality Engineering for Digital Technologies“ schärft er außerdem die Strategie und Roadmap für weitere zukunftsgerichtete Themen. Aktuell interessiert er sich privat neben der Arbeit vor allem für die Themen Identitätsschutz und Sustainability in Software und Software Testing, was ihn auch zum Beitrag auf der German Testing Day inspiriert hat.

Highlights in dieser Episode:

  • Nachhaltigkeit in der Softwareentwicklung betrifft nicht nur die Effizienz der Ressourcennutzung, sondern auch die Langlebigkeit der Software
  • Nachhaltigkeit sollte als eine neue Perspektive auf bestehende nicht-funktionale Anforderungen betrachtet werden
  • Es gibt Organisationen wie Principles.Green und die Green Software Foundation), die wertvolle Ressourcen und Tutorials zum Thema nachhaltige Softwareentwicklung bereitstellen
  • Die richtige Architektur und ein bewusster Umgang mit Ressourcen können einen großen Beitrag zur Nachhaltigkeit leisten
  • Durch kleine Änderungen im Staging-System können große Einsparungen bei der Ressourcennutzung erzielt werden

Nachhaltigkeit in der Softwareentwicklung: Ein Leitfaden für Entwickler und Tester

In der heutigen Folge diskutieren wir die Rolle der Nachhaltigkeit in der Softwareentwicklung und im Softwaretesting. Von den Anforderungen bis hin zur Implementierung und dem Testen, erfahren Sie, wie Nachhaltigkeit nicht nur eine ethische Verantwortung, sondern auch eine Chance für Effizienzsteigerung und Kostenreduktion sein kann.

Die Bedeutung von Nachhaltigkeit in der Softwareentwicklung

In der heutigen Folge tauchen wir ein in das Thema Nachhaltigkeit in der Softwareentwicklung. Während meines Gesprächs mit Markus Lachenmayr und Florian Krautwurm wurde deutlich, wie wichtig es ist, Nachhaltigkeit nicht als ein Hindernis, sondern als eine Chance zu betrachten. Nachhaltige Softwareentwicklung geht weit über das einfache Einsparen von Ressourcen hinaus. Es ist ein umfassender Ansatz, der darauf abzielt, sowohl die Langlebigkeit der Software als auch ihre Ressourceneffizienz zu maximieren.

Die Herausforderung: Nachhaltigkeit als nachträgliche Überlegung

Eine der größten Herausforderungen in der Branche ist die Tendenz, Nachhaltigkeit als nachträgliche Überlegung zu behandeln. Oft werden Entscheidungen über Performance, Sicherheit und Wartbarkeit getroffen, ohne dabei den Aspekt der Nachhaltigkeit zu berücksichtigen. Diese Vorgehensweise führt nicht nur zu verschwendeten Ressourcen, sondern kann auch langfristig die Wartbarkeit und Erweiterbarkeit der Software beeinträchtigen. Unsere Markus und Florian betonen die Wichtigkeit, Nachhaltigkeit von Anfang an in den Entwicklungsprozess einzubeziehen.

Lösungen und Best Practices

Markus und Florian teilen wertvolle Einblicke darüber, wie man Nachhaltigkeit effektiv in den Entwicklungsprozess integrieren kann. Hier sind einige Schlüsselstrategien:

  • Frühzeitige Integration von Nachhaltigkeitsaspekten in das Anforderungsengineering
  • Betrachtung von Nachhaltigkeit als eine neue Perspektive auf vorhandene NFRs (Nicht funktionale Anforderungen)
  • Durchführung von Trade-off-Analysen zwischen verschiedenen NFRs unter Berücksichtigung ihrer Auswirkungen auf die Nachhaltigkeit

Nachhaltiges Testen: Ein unerwarteter Spielwechsler

Interessanterweise ist das Feld des nachhaltigen Testens noch relativ unerforscht. Doch genau hier sehen unsere Gäste großes Potenzial für Einsparungen und Verbesserungen. Durch strategische Planung können Tests so angelegt werden, dass sie weniger Ressourcen verbrauchen. Beispielsweise können Performance-Tests während Zeiten hoher Verfügbarkeit erneuerbarer Energien durchgeführt werden, was den Carbon Footprint signifikant reduziert.

Praktische Tools und Ressourcen für den Einstieg

Für Entwickler und Tester, die sich aktiv mit dem Thema auseinandersetzen möchten, bieten Organisationen wie Principles.Green oder die Green Software Foundation ausgezeichnete Ressourcen. Diese Plattformen bieten Tutorials, Artikel und sogar spezielle Patterns an, die zur Steigerung der Nachhaltigkeit beitragen können.

Ein Aufruf zum Handeln

Abschließend betonen Markus und Florian die Dringlichkeit, jetzt zu handeln. Die Implementierung nachhaltiger Praktiken in der Softwareentwicklung ist nicht nur gut für die Umwelt – sie kann auch erhebliche Kosteneinsparungen bringen und die Effizienz steigern. Indem wir diese Prinzipien in unseren täglichen Arbeitsablauf integrieren, leisten wir einen wertvollen Beitrag zum Schutz unseres Planeten.