Ressourcenorientierte Softwareentwicklung
Der Begriff
Ressourcenorientierte Softwareentwicklung bedeutet, Software so zu erstellen, dass Ressourcen effizient und verantwortungsbewusst genutzt werden. Sowohl das Ergebnis, als auch der Weg dahin muss so gestaltet sein, dass die Bedürfnisse der aktuellen lebenden Menschen erfüllt sind, ohne die Möglichkeiten zukünftiger Generationen zu beeinträchtigen. Dabei werden soziale, ökologische und wirtschaftliche Aspekte gleichermaßen berücksichtigt.
Worum geht es?

CO2 Abdruck von AI
Die Berücksichtigung des CO2 Abdrucks in zentralen Phasen der Softwareentwicklung: schon in der Forschung sowie bei der Planung und Umsetzung von Softwareprojekten und der Schaffung der benötigten Datengrundlage z.B. für künstliche Intelligenzen / AI. Siehe auch den Unterschied zwischen Red AI <-> Green AI. Auch die Auswahl des benutzten AI Models hat großen Einfluss, hier sind besonders Modelle auf Basis von algorithmischer Effizienz denen vorzuziehen, die auf Basis von reinen Datenmassen funktionieren.
Alle 3,4 Monate verdoppelt sich der Aufwand für das Anlernen einer KI – von 2012 bis 2019 daher mehr als 300.000 Mal mit erheblichen Auswirkungen auf den Energieverbrauch und den CO2 Fussabdruck. Das ist schneller als zum Beispiel das Mooresche Gesetz, das für Prozessoren alle 2 Jahre eine Verdopplung der Schaltkreise vorhersagte.
Mit Green AI lassen sich intelligente KI-Modelle entwickeln, die im besten Falle sogar klimapositiv sind, weil sie verantwortungsvoll mit Ressourcen umgehen und darüber hinaus helfen, andere Prozesse z.B. in der Landwirtschaft oder Industrie zu optimieren.
- RED-AI: How costly are the new machine learning models? – ML und Rechenpower
- Allen Institute for AI: Green AI (PDF) – Effizienz von KI als Faktor in der Forschung
- AI and Compute – OpenAI: AI und Rechenpower
Energieeffiziente Software-Praktiken
Der Einsatz von Technologien und Praktiken, die darauf abzielen, den Energieverbrauch zu reduzieren, wie z.B. der Einsatz von Green Coding oder Green Software Patterns, die Verwendung von energiesparenden Servern beim Betrieb der Software und die allgemeine Verringerung des Stromverbrauchs in allen Lebensphasen der Software.
Die Green Software Foundation baut eine übergreifende Sammlung von Green Patterns zu Themen wie AI, Cloud oder Software auf, die helfen sollen, Emissionen durch Software zu vermeiden – siehe unter Links.
- Green Software Patterns: Katalog mit einer großen Bandbreite von Green Software Patterns
Open Source
Die gezielte Nutzung von Open-Source-Komponenten kann zur Ressourcenschonung beitragen: Bewährte Bausteine müssen nicht mehrfach neu entwickelt werden, und die weltweite Community kann kontinuierliche Qualitäts- und Effizienzverbesserungen zusteuern. Jeder kann die Software überprüfen oder verbessern – Diese Offenheit ist ein bekanntes Merkmal von Open-Source-Software und trägt zur Vertrauensbildung bei. So entsteht auch eine Zusammenarbeit und ein Wissensaustausch innerhalb der Entwicklergemeinschaft, um so die Qualität der Software zu verbessern und weitere Innovationen voranzutreiben.
Messbarkeit
Die Messbarkeit von Software in Hinsicht auf den Ressourcenverbrauch ist schwierig – zum einen bilden sich gerade erst Metriken hierfür heraus, wie zum Beispiel in der Forschung zum maschinellen Lernen im Bereich der KI. Zum anderen sind entsprechende Systeme – auch mangels Bewußtsein der Beteiligten – noch nicht übergreifend im Einsatz, um zum Beispiel schon während der Entwicklung die Auswirkung von Softwareanpassungen im Verbrauch von Energie beobachten zu können.
Langlebige Beziehungen
Ein weiterer Baustein für vertrauensvolle Kundenbeziehungen ist die konsequente Einhaltung von Datenschutz- und Sicherheitsstandards, um sicherzustellen, dass die persönlichen Daten der Nutzer geschützt bleiben und das Vertrauen für eine langlebige Beziehung der Nutzer mit der Anwendung ermöglicht wird.
Fragen Sie uns an
Eine ressourcenschonende Softwareentwicklung wird immer wichtiger, je mehr wir uns auf Technologien verlassen und je tiefer Technologie in unseren Alltag eindringt – das erfordert ein Umdenken in der Softwareentwicklung. Wir integrieren ressourcenschonende Prinzipien konkret in unsere Entwicklungsprojekte – etwa durch schlanke Architekturen und effizienten Ressourceneinsatz..
Lassen Sie uns gemeinsam prüfen, wie wir Ihr nächstes Projekt ressourceneffizient aufstellen können.