Systemgrenzen von „Nachhaltiger Software“?

Welches sind die Systemgrenzen von „Nachhaltiger Software“?

Erläuterungen:

  • Wo beginnt und wo endet der Einfluss des Software-Entwicklers / der Software-Entwicklerin?
  • Welche Lebenszyklus-Phasen können bei der Bewertung der Nachhaltigkeit sinnvollerweise berücksichtigt werden?
  • Wo sind die nicht beeinflussbaren Abhängigkeiten z.B. zu Hardware-Plattform, Entwicklungsumgebung und Nutzerverhalten?
  • Welche Umweltwirkungen können einbezogen werden (z.B. auch Hardware, technischen Infrastruktur, Datenübertragung)?
  • Wie kann das Software-Produkt eindeutig gefasst werden (z.B. Software Versionsnummer, Supportzeitraum, Bereitstellung der Software-Dienstleistung)?

3 thoughts on “Systemgrenzen von „Nachhaltiger Software“?

  1. Die Wechselwirkungen zwischen Hard- und Software sind explizit zu berücksichtigen. Eine Analyse der Wechselwirkungen zwischen Software und Anwender sollte im betrachteten Kontext ebenfalls erfolgen.
    Ich würde zunächst sämtliche Umweltwirkungen betrachten, die einen Bezug zu den Zielen nachhaltiger Entwicklung haben.

  2. • Wo beginnt und wo endet der Einfluss des Software-Entwicklers / der Software-Entwicklerin?
    Der Software-Entwickler eines nachhaltigen Software-Produkts muss die aktuell gängige Hardware als etwas Vorhandenes annehmen. Er muss dafür sorgen, dass sein Programm mit den Ressourcen in einer vorhandenen Umgebung nicht nur zurecht kommt, sondern auch diese möglichst sparsam in Anspruch nimmt.
    Er übt zudem einen indirekten Einfluss auf zukünftige Versionen aus an denen er nicht mehr beteiligt ist indem er eine bestimmte Architektur wählt und den Grad der Änderungsfreundlichkeit und Anpassbarkeit festlegt.

    • Welche Lebenszyklus-Phasen können bei der Bewertung der Nachhaltigkeit sinnvollerweise berücksichtigt werden?
    Die Anwendungsphase ist die entscheidende, denn wir hier die Multiplikationseffekte von der Verwendung der Software haben. Umso mehr und breiter die Verwendung umso weniger fällt die Planung- und Entwicklungsphase ins Gewicht.

    • Wo sind die nicht beeinflussbaren Abhängigkeiten z.B. zu Hardware-Plattform, Entwicklungsumgebung und Nutzerverhalten?
    Der Vortrag von Dr. Wolfgang Lohmann hat hierzu einen guten Einblick gegeben. Es ist also auch die Frage interessant wann lohnt es sich überhaupt etwas zu beeinflussen und ob das nicht andere Probleme mit sich bringt?
    Das Nutzerverhalten kann vielleicht nicht Beeinflusst werden, es kann aber mit der Einhaltung der Sicherheitsstandards zumindest dafür gesorgt werden, dass die Folgen eines negativen Verhaltens seitens der Nutzer minimiert werden.

    • Welche Umweltwirkungen können einbezogen werden (z.B. auch Hardware, technischen Infrastruktur, Datenübertragung)?
    Hängt davon ab wo die Systemgrenzen enden.

    • Wie kann das Software-Produkt eindeutig gefasst werden (z.B. Software Versionsnummer, Supportzeitraum, Bereitstellung der Software-Dienstleistung)?
    Auch interessant ist die Frage: Wenn eine Version der Software als Nachhaltig gekennzeichnet bzw. zertifiziert worden ist, dann ab welchen Änderungsgrad oder nach welchen Änderungen genau ist sie wieder überprüfungsfällig?

  3. Mit Blick auf die Frage zu den Lebenszylkus-Phasen möchte ich noch einen Aspekt ergänzen, der mir während meiner langjährigen Tätigkeit als Software-Architekt regelmäßig auffiel:
    In die Software-Architekturen werden häufig Software-Komponenten (Frameworks, Klassenbibliotheken, …) eingezogen, die mit Blick auf die umzusetzenden Anwendungsfälle unnötig komplex sind und teilweise sehr hohe Hardware- und Betriebssystem-Anforderungen stellen. Die Ursachen hierfür sind vielfältig: Kommerzielle Interessen (die Geschäftsführung will ihre teuren Basiskomponenten verkaufen), Bequemlichkeit der Entwickler („läuft doch!“), mangelnde Informatik-Kenntnisse, etc. (Ich habe nicht selten Interfaces in meine Architekturen eingezogen, die einen Betrieb auf Basis leichtgewichtigerer Komponenten möglich machten, was nicht immer auf Gegenliebe stieß…)
    Soll heißen: Nicht nur die Anwendungsphase ist entscheidend, sondern meines Erachtens auch die Entwurfsphase!
    In der Implementierungsphase konnte ich ähnliche Dinge beobachten: Statt Web-Inhalte zu cachen werden z. B. wiederholt Abfragen gestartet, ineffiziente „Brute force“-Algorithmen werden schnell implementiert (da die Hardware es ja hergibt), und da lassen sich zahlreiche weitere Beispiele finden. Die Effekte schätze ich als vergleichsweise gering, aber teilweise relevant ein.
    Eine Sensibilisierung von Software-Entwicklern für diese Themen würde ich begrüßen.

Es sind keine Kommentare mehr möglich.