Software ist ein wesentlicher Bestandteil unseres täglichen (Arbeits-) Lebens geworden – vor allem bei my-vpa, da Software die Basis unseres Zusammenarbeitens ist. Die „Herstellung“ oder Programmierung und Nutzung von Software hat jedoch auch erhebliche Auswirkungen auf die Umwelt, die soziale Gerechtigkeit und die wirtschaftliche Nachhaltigkeit. Daher ist es wichtig, Software nachhaltig zu entwickeln und sicherzustellen, dass sie die Bedürfnisse der Gegenwart erfüllt, ohne die Möglichkeiten künftiger Generationen zu gefährden, ihre eigenen Bedürfnisse zu erfüllen. Wie sie sich nachhaltig nutzen lässt, haben wir ja schon in Teil 1 unserer Serie beleuchtet. Wie kann Software nachhaltig entwickelt werden?
Nachhaltige Softwareentwicklung kann definiert werden als der Prozess der Erstellung von Software, der negative ökologische, soziale und wirtschaftliche Auswirkungen reduziert und gleichzeitig positive Auswirkungen fördert. Dazu gehört die Konzeption, Implementierung und Bereitstellung von Software unter Berücksichtigung der ökologischen, sozialen und wirtschaftlichen Folgen ihres gesamten Lebenszyklus, von der Konzeption bis zur Entsorgung.
Ingmar Bornholz, CEO und CTO my-vpa GmbH
Die Vereinten Nationen haben die Bedeutung der Softwareentwicklung für die Erreichung der Ziele für nachhaltige Entwicklung (SDGs) erkannt. Die SDGs sind eine Reihe von 17 Zielen, die sich mit den wichtigsten Herausforderungen der Welt befassen, wie Armut, Hunger, Gesundheit, Bildung, Gleichstellung der Geschlechter, sauberes Wasser und sanitäre Einrichtungen, erschwingliche und saubere Energie, menschenwürdige Arbeit und Wirtschaftswachstum, Industrie, Innovation und Infrastruktur, Verringerung von Ungleichheiten, nachhaltige Städte und Gemeinden, verantwortungsvoller Konsum und Produktion, Klimaschutz, Leben unter Wasser, Leben an Land, Frieden, Gerechtigkeit und starke Institutionen. Nachhaltige Softwareentwicklung trägt zu mehreren SDGs bei, wie z. B:
SDG 7: Erschwingliche und saubere Energie: Nachhaltige Softwareentwicklung kann den Energieverbrauch senken, indem der Code optimiert, effiziente Algorithmen verwendet und die Hardwareanforderungen minimiert werden. Dies kann zu erheblichen Energieeinsparungen und einer Verringerung der Kohlenstoffemissionen führen.
SDG 9: Industrie, Innovation und Infrastruktur: Nachhaltige Softwareentwicklung kann dazu beitragen, die Infrastruktur zu verbessern und Innovationen zu fördern, indem Software entwickelt wird, die erneuerbare Energien, intelligente Stromnetze, effiziente Transportsysteme und nachhaltige Gebäudekonzepte unterstützt.
SDG 12: Verantwortungsvoller Konsum und Produktion: Nachhaltige Softwareentwicklung kann ständige Neuentwicklungen und Bugfixes reduzieren und so die Ressourceneffizienz verbessern, indem Open-Source-Software verwendet wird, die die Zusammenarbeit, die Wiederverwendung und das Recycling von Code fördert. Sie kann auch die Umweltauswirkungen von Hardware reduzieren, indem sie Software entwickelt, die mit älteren und weniger leistungsfähigen Geräten kompatibel ist.
SDG 13: Klimapolitik: Nachhaltige Softwareentwicklung kann zur Eindämmung des Klimawandels beitragen, indem sie Software entwickelt, die Kohlenstoffemissionen überwacht und reduziert, erneuerbare Energien unterstützt und Einzelpersonen und Organisationen hilft, nachhaltigere Entscheidungen zu treffen – und sich vor allem messen lässt.
Um eine nachhaltige Softwareentwicklung zu erreichen, können verschiedene Ansätze und Techniken verwendet werden, darunter Open-Source-Software und Paradigmen für eine nachhaltige Softwarearchitektur. Open-Source-Software ist eine Kategorie von Software, die es den Benutzern erlaubt, auf den Quellcode zuzugreifen, ihn zu ändern und zu verbreiten. Das bedeutet, dass jeder die Software nutzen und verbessern kann, was die Zusammenarbeit und Innovation fördert.
Open-Source-Software hat mehrere Vorteile, die sie zu einer idealen Wahl für die nachhaltige Softwareentwicklung machen, darunter
Kollaboration: Open-Source-Software fördert die Zusammenarbeit zwischen Entwicklern und Benutzern, was zu einer besseren Qualität und Zuverlässigkeit der Software führt.
Wiederverwendung: Open-Source-Software kann wiederverwendet und modifiziert werden, wodurch die Notwendigkeit, neuen Code von Grund auf zu erstellen, verringert und das Code-Recycling gefördert wird.
Transparenz: Open-Source-Software ist transparent, d. h. die Benutzer können den Code sehen und verstehen, wie er funktioniert. Dies fördert das Vertrauen und die Verantwortlichkeit, die für eine nachhaltige Softwareentwicklung unerlässlich sind.
Sicherheit: Open-Source-Software ist sicherer als Closed-Source-Software, da mehr Menschen den Code überprüfen und verbessern können, um Sicherheitslücken zu erkennen und zu schließen.
Kostengünstig: Open-Source-Software ist häufig kostenlos oder kostengünstig, was sie für Einzelpersonen und Unternehmen leichter zugänglich und erschwinglich macht. Zu den Paradigmen der nachhaltigen Softwarearchitektur gehören unter anderem:
Serviceorientierte Architektur (SOA): SOA ist ein Architekturstil, der eine lose Kopplung zwischen Softwarekomponenten fördert, wodurch diese leichter wiederverwendet und geändert werden können. Dies führt zu einer besseren Ressourcennutzung, verringert die Verschwendung und fördert die Nachhaltigkeit. Microservices-Architektur: Die Microservices-Architektur ist ein Ansatz, bei dem große Softwaresysteme in kleine, unabhängige Dienste zerlegt werden, die unabhängig entwickelt, bereitgestellt und skaliert werden können. Dieser Ansatz fördert Flexibilität, Agilität und Widerstandsfähigkeit und reduziert den Bedarf an großen, monolithischen Systemen, die schwer zu warten und zu aktualisieren sind.
Cloud-native Architektur: Cloud-native Architektur ist ein Ansatz, der Cloud-Computing-Technologien nutzt, um Software zu entwickeln und bereitzustellen, die skalierbar, zuverlässig und kostengünstig ist. Dieser Ansatz fördert die Nachhaltigkeit, indem er die Hardwareanforderungen reduziert, die Energieeffizienz fördert und eine effiziente Ressourcennutzung ermöglicht.
Grüne Software-Entwicklung: Green Software Engineering umfasst eine Reihe von Praktiken und Techniken, die eine nachhaltige Softwareentwicklung fördern, z. B. die Optimierung des Codes, die Verringerung des Energieverbrauchs, die Minimierung von Abfall und die Nutzung erneuerbarer Energiequellen.
Aus einer technologischen Sicht setzen wir bei my-vpa auf einen nachhaltigen, OpenSource Ansatz z.B. durch die Verwendung von MariaDB, PHP, TensorFlow, Ubuntu, Matrix, Apache, OwnCloud, OpenXchange.
Zusammenfassend lässt sich sagen, dass die nachhaltige Softwareentwicklung für das Erreichen der SDGs und die Förderung einer nachhaltigeren Zukunft unerlässlich ist. Open-Source-Software und Paradigmen für eine nachhaltige Softwarearchitektur sind wichtige Instrumente zur Erreichung dieses Ziels, da sie Zusammenarbeit, Wiederverwendung, Transparenz, Sicherheit und Kosteneffizienz fördern. Durch die Übernahme dieser Ansätze können Softwareentwickler Software erstellen, die negative ökologische, soziale und wirtschaftliche Auswirkungen reduziert und gleichzeitig positive Auswirkungen fördert und so zu einer nachhaltigeren Welt beiträgt.