Zum Inhalt springen

Blogeintrag

Wettbewerbsvorteil durch Nachhaltigkeit in der Softwareentwicklung

Softwareentwickler  Requirements Engineering 

Jeder ist sich der Wichtigkeit von Nachhaltigkeit bewusst. Trotzdem wird Nachhaltigkeit von vielen Softwareentwicklern und Anforderungsmanagern als zweitrangig angesehen. Eine genauere Betrachtung der Vorteile von Nachhaltigkeit kann zu neuen Sichtweisen führen.

Der Begriff Nachhaltigkeit setzt sich nicht nur mit dem Thema Umweltschutz auseinander, sondern kann auch signifikant zum Unternehmenserfolg beitragen. Diese Tatsache gilt ebenfalls in Bezug auf die Entwicklung von Softwaresystemen. Daher ist es notwendig, Nachhaltigkeit bereits im Anforderungsmanagement (Requirements Engineering) zu berücksichtigen.

Dimensionen der Nachhaltigkeit

Warum ist Nachhaltigkeit in Softwaresystemen wichtig? Softwaresysteme sind bereits Teil unseres Alltags und werden durch das „Internet of Things“ oder „Smart Homes“ unser Leben noch stärker bestimmen. Aufgrund dieser allgegenwärtigen Präsenz von Softwaresystemen ist es wichtig, dass diese unsere Ziele für eine nachhaltige Entwicklung unterstützen. Man kann soweit gehen und behaupten, dass unser Stromverbrauch größtenteils von der Software und der zugrundeliegenden Hardware beeinflusst wird und weniger von uns Menschen [1]. Das gleiche gilt für Informationen, die wir uns tagtäglich über Wikis, Foren oder Blogs beschaffen. Eine Berücksichtigung von Nachhaltigkeit beim Entwurf und der Implementierung eines Softwaresystems ist daher ein großer Schritt zur Verbesserung der in der heutigen Zeit eingesetzten Technologie.

Was ist Nachhaltigkeit in der Softwareentwicklung? Nachhaltigkeit in der Softwareentwicklung wird oftmals mit der Wartbarkeit und Erweiterbarkeit eines Systems gleichgestellt. Obwohl diese Gleichstellung nicht falsch ist, ist sie trotzdem unvollständig. In der Wissenschaft ist man sich einig, dass die Nachhaltigkeit fünf Dimensionen umfasst: das sind die technische, ökonomische, ökologische, individuelle sowie die soziale Dimension [1]. Im folgendem Abschnitt beschreiben wir die Dimensionen und definieren dazu beispielhafte Anforderungen. 

Die technische Dimension fokussiert auf Software-Qualitätsfaktoren, welche die Langlebigkeit des Systems unterstützen sowie dem System ermöglichen, sich mit den sich stets ändernden Umgebungsbedingungen zu entwickeln [2]. → Als Benutzer möchte ich mein Projektmanagementsystem mit Plug-ins erweitern können, damit ich bei geänderten Randbedingungen das Projektmanagementsystem leicht anpassen und erweitern kann.

Die Ziele der ökonomischen Dimension sind die Erreichung von langfristigen Geschäftszielen und der Wertschöpfung [2]. → Als IT-Betrieb möchte ich, dass Algorithmen effizient implementiert sind, um die Energiekosten niedrig zu halten; Als Entwickler möchte ich, dass meine Programmierumgebung meine täglichen Aktivitäten aufzeichnet, um mir Vorschläge zur Optimierung meiner Arbeitsweise zu geben.

Die ökologische Dimension bezieht sich auf den Schutz von natürlichen Ressourcen und den Erhalt biologischer Ökosysteme [2]. → Als Mensch möchte ich, dass Algorithmen effizient implementiert sind, um den Klimawandel durch CO2-Ausstoß zu verhindern.

Die individuelle Dimension hat das Ziel, das Wohlergehen eines Menschen zu verbessern, welches stark mit seiner physischen und psychischen Gesundheit und seiner Weiterbildung verknüpft ist [2]. → Als Eltern möchten wir, dass das Smartphone unseres Kindes zur Schulzeit nur Telefonieren erlaubt, damit sich das Kind auf das Lernen konzentrieren kann.

Zuletzt befasst sich die soziale Dimension mit der Bewahrung des sozialen Kapitals sowie der Beibehaltung der Solidarität sozialer Gesellschaften [3]. → Als sehbehinderter Benutzer möchte ich, dass jede Website die Accessibility-Richtlinien von W3C umsetzt, damit ich das Internet uneingeschränkt nutzen kann.

Wie kann ich feststellen ob mein Softwaresystem nachhaltig ist? Wie kann ich ein nachhaltiges Softwaresystem entwerfen? An diesem Punkt kommt das Requirements Engineering ins Spiel. Sowohl funktionale als auch nicht-funktionale Anforderungen beschreiben die Kapazitäten und Handlungsweisen eines Systems und eignen sich daher optimal für die Analyse von Nachhaltigkeitsaspekten sowie für den Entwurf einer nachhaltigen Software. 

Welche Vorteile ergeben sich durch die Berücksichtigung von Nachhaltigkeit? Eine Berücksichtigung der Nachhaltigkeit kann sowohl zu unmittelbaren als auch zu langfristigen Vorteilen führen. Zu den unmittelbaren Vorteilen zählen beispielsweise ökonomische Aspekte wie Kosteneinsparungen oder Wettbewerbsvorteile. Langfristig betrachtet kann dadurch auch das Image eines Unternehmens oder einer Organisation verbessert werden.

[1] C. Becker u. a., „Sustainability Design and Software: The Karlskrona Manifesto”, in 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, 2015, Bd. 2, S. 467–476.

[2] C. Calero und M. Piattini, Hrsg., Green in Software Engineering. Springer International Publishing, 2015.

[3] A. Raturi, B. Penzenstadler, B. Tomlinson, und D. Richardson, „Developing a Sustainability Non-functional Requirements Framework”, in Proceedings of the 3rd International Workshop on Green and Sustainable Software, New York, NY, USA, 2014, S. 1–8.

Resümee

Noch heute werden Nachhaltigkeitsaspekte in der Anforderungsspezifikation als zweitrangig angesehen. Ich habe dargestellt, dass die Berücksichtigung von Nachhaltigkeit beim Entwurf einer Software sowohl einen Nutzen für die Gesellschaft und die Umwelt, als auch für die operativen und strategischen Geschäftsziele eines Unternehmens hat.

Kontakt für Anfragen

Johannes Bergsmann

johannes.bergsmann@software-quality-lab.com

 +43 5 0657-420
 +43 676 840072 420