asd
- Advertisement -spot_img
HomeNachhaltigkeitNachhaltigkeitsmeetings für mehr Softwarequalität und Erfolg

Nachhaltigkeitsmeetings für mehr Softwarequalität und Erfolg

- Advertisement -spot_img

Autor: Jochen Joswig

Wie verankert man Nachhaltigkeit als Softwarehersteller im Unternehmen? Als Unternehmensphilosophie, als Qualitätsauflage? Wie behält man dieses ambitionierte Ziel im Projektalltag im Blick? Notwendig ist ein Prozess, der sich Grundsätze agiler Methoden zu eigen macht. Ein wichtiger Baustein sind regelmäßige Meetings, in denen Nachhaltigkeit zum zentralen Thema wird.

Noch ist Nachhaltigkeit in heutigen Softwareentwicklungsprojekten häufig höchstens eine Fußnote. Doch das ist Dank des wachsenden Bewusstseins im Wandel: Microsoft, UBS,
WattTime und die Green Software Foundation haben beispielsweise erst kürzlich in einem Whitepaper gezeigt, wie sie den CO2 -Fußabdruck eines Teils der von UBS eingesetzten Software reduzieren können [1]. Die Relevanz ökologischer Nachhaltigkeit für das eigene Unternehmen anzuerkennen, führt oft zu folgenden Fragen:

1. Was muss man ändern, um nachhaltiger zu werden?
2. Wie kann man diese Änderung vollziehen?

Viele Softwareentwickler:innen sehen in der Einführung von Nachhaltigkeit als Qualitätsmerkmal die Lösung der ersten Frage. Doch das wiederum wirft die Frage auf was Software in sich nachhaltig macht. Diese Frage lässt sich meiner Meinung nach wie folgt beantworten: Nachhaltige Software zeichnet sich durch den bewussten Einsatz von Ressourcen zu ihrer Entwicklung, Betrieb und Entsorgung aus. Sie wird so entwickelt
und betrieben, dass die eingesetzten Ressourcen geschont und der ökologische Fußabdruck der Software pro Skalierungseinheit optimiert wird.

Eine umfassende Antwort auf diese Frage hängt aber von der Art der Software ab. Entwickeln Sie z. B. eine grüne Taschenrechner-App, werden Sie sich anderen Detailfragen stellen müssen als Entwickler:innen einer Cloudanwendung, die Anfragen von Millionen von Nutzenden gleichzeitig verarbeiten können muss.

Welche Fragen sollten Sie sich stellen?

Fragen, die Sie sich und Ihrem Team stellen sollten, lassen sich im Wesentlichen in folgende drei Kategorien zusammenfassen.

1. Überblick verschaffen

Hierfür eignen sich Fragen, die Ihre Teammitglieder ermutigen, möglichst viele verschiedene Bereiche und Ebenen der Anwendung zu betrachten, Probleme zu identifizieren und mögliche Verbesserungen vorzuschlagen. Beispiele für derartige Fragen sind:

a. Wo sehen Teilnehmende allgemein Potenzial zur Verbesserung der Nachhaltigkeit?
b. An welcher Stelle ist die Software ineffizient?
c. Können wir bei der Entwicklung Ressourcen sparen? Wenn ja, wo und wie?


2. Zielgerichtet nach Lösungen suchen:

Sobald Sie einen Überblick gewonnen haben, ist es häufig hilfreich, den Fokus auf bestimmte Bereiche zu konzentrieren und mögliche Lösungen zu diskutieren, um sich am Ende auf eine festzulegen. Beispiele für solche Fragen sind:

a. Wie können wir <hier Bereich einfügen> nachhaltiger gestalten?
b. Wie können wir im/bei/während <hier Bereich einfügen> auf Nachhaltigkeit achten?


3. Diskussion von konkreten Vorschlägen

Sind Lösungsvorschläge gesammelt, sollten diese detailliert besprochen, sowie ihre Priorität und Umsetzbarkeit geklärt werden. Im Folgenden sind einige Vorschläge aufgelistet, nicht alle davon müssen für Ihr Projekt relevant sein. Weitere Anregungen können Sie in verschiedenen Publikationen finden, wie bei Meetups [2] [3], Konferenzen [4] [5], in Newslettern [6], Zeitschriften, Büchern [7] und Podcasts [8]. Zudem arbeitet die Green Software Foundation aktuell an einer Sammlung derartiger Patterns [9].

a. Können über Nacht und an Wochenenden Entwicklungs- und Testumgebungen heruntergefahren und Geräte ausgeschaltet werden?

b. Können Sie Rechenlasten in Zeiten und Regionen verschieben, in denen die CO2 -Emissionen pro kWh möglichst gering sind?

c. Können Sie das Skalierungsverhalten der Anwendung verbessern?

d. Können Sie sparsamere Datenformate und Kompressionsalgorithmen verwenden?

e. Speichern Sie nur Daten, die Sie wirklich benötigen und solange Sie diese benötigen?

f. Unterstützen Sie auch ältere Geräte und Hardware?

g. Bieten Sie einen Dark Mode an?

h. Können Sie auf Interpreter-Sprachen wie z. B. PHP, Python, Perl oder TypeScript verzichten?

Sie sehen, dass Sie eine Menge Einfluss, aber auch eine Menge zu besprechen haben. Deshalb schlage ich Ihnen im Folgenden einen Prozess vor, mit dem Sie diese und weitere
Fragen rund um die Nachhaltigkeit Ihrer Software systematisch und sukzessive angehen können. Zentrales Element dieses Prozesses sind Nachhaltigkeitsmeetings.

Wie funktionieren Nachhaltigkeitsmeetings?

Nachhaltigkeitsmeetings sind vergleichbar mit Retrospektiven. Jedoch wird hier nicht betrachtet und diskutiert, wie man die Zusammenarbeit verbessert und das Team stärkt, sondern wie man Nachhaltigkeit im Produkt und im Entwicklungsprozess berücksichtigen
kann. Nachhaltigkeitsmeetings machen sich viele Eigenschaften des agilen Projektmanagements zu eigen und sind daher leicht in bereits bestehende agile Strukturen integrierbar. Die Abbildung 1 zeigt, wie man Nachhaltigkeitsmeetings in den Scrum-Prozess
aufnehmen kann. Anders als bei Retrospektiven sollten Sie zu einem Nachhaltigkeits-meeting jedoch nicht das gesamte Team einladen, sondern nur genug Teilnehmende, um das Thema des Termins von allen wesentlichen Perspektiven betrachten zu können.

So erweitern Nachhaltigkeitsmeetings agiles Arbeiten nach Scrum.
Abb. 1 So erweitern Nachhaltigkeitsmeetings agiles Arbeiten nach Scrum.

Ähnlich zum FMEA-Methodenspezialist bei der Fehlermöglichkeits- und Einflussanalyse (FMEA) oder Scrum Master bei der Retrospektive ist es auch hier sinnvoll, eine dedizierte Person zu haben, welche einen Termin organisiert, moderiert und protokolliert. So können sich alle anderen Teilnehmenden vollständig der Diskussion des Themas widmen. Für die Diskussion des Themas bieten sich verschiedene Formate an. Gute Erfahrungen habe ich persönlich unter anderem mit folgenden Ansätzen gemacht:

Start, Stop, Continue, Improve

Dieses aus Retrospektiven bekannte Format funktioniert ebenso gut für Nachhaltigkeitsmeetings. Es sind Varianten bekannt, welche dieses Format mit einer Metapher verbinden, zum Beispiel einem Segelboot oder einer wachsenden Pflanze. Fühlen Sie sich frei, hier Ihre eigene zu finden.

Jigsaw

Bei Jigsaw beschäftigten sich die Teilnehmer:innen zu Beginn mit einer anderen Teilfrage oder einem Teilproblem, erarbeiten einen Lösungsvorschlag und stellen diesen an-
schließend der Gruppe vor.

Snowballing

Beim Snowballing beschäftigt sich jeder zu Beginn mit derselben Frage
und diskutiert Lösungen dann in immer größer werdenden Gruppen.

Think, Pair, Share

Während der initialen „Think”-Phase, arbeiten alle selbstständig an Lösungsideen, darauf
folgt eine “Pair”-Phase, in der die Ideen zu zweit diskutiert und anschließend der Gruppe vorgestellt werden.

Rechnen Sie je nach Fragestellung und Format mit 30 bis 90 Minuten für einen konkreten Termin. Ich empfehle Nachhaltigkeitsmeetings unabhängig vom Sprint-Zyklus zu planen, da es sonst häufig schwer fällt, den Bias des aktuellen Sprints abzulegen und sich auf die entwickelte Software als Ganzes zu konzentrieren. Außerdem reduzieren Sie so die Meetinglast in ihren Sprints und betonen den Stellenwert von Nachhaltigkeit im Projekt.
Meine Empfehlung ist ein monatlicher Zyklus, da damit genug Zeit für ggf. notwendige Folgetermine und die Verarbeitung der Beschlüsse des vorherigen Termins bleibt.

Vom Meeting zum Prozess

Nachdem Sie ein Thema besprochen haben, gilt es, gefällte Entscheidungen zu protokollieren (bspw. in strukturierten Decision Logs) und ggf. in Action-/Work Items oder
Akzeptanzkriterien zu überführen. Dadurch fließen ihre Entscheidungen direkt in die zu entwickelnde Software ein. Ergebnisse eines Nachhaltigkeitstermins können analog zur Retrospektive auch Entscheidungen sein, welche die Art und Weise beeinflussen, wie Sie Software entwickeln. Auch wenn durch diese Maßnahmen der Einfluss der im Nachhaltigkeitsmeeting getroffenen Entscheidungen nachvollziehbar ist, sollten Sie die
Umsetzung mit Hilfe von Ansätzen wie dem Shewhart-Zyklus, dem Demingkreis oder Plan, Do, Check, Act nachverfolgen.

Dabei sollten Nachhaltigkeitsmeetings ihren bestehenden Entwicklungsprozess ergänzen und erweitern. Die darin getroffenen Beschlüsse sollten sich nahtlos in Bestehendes wie Daily-Meetings, Plannings, Monitoring, Controlling, usw. einfügen. Sollten Anpassungen notwendig sein, fließen diese zur Diskussion zurück in die Nachhaltigkeitsmeetings. Dadurch schließt sich ein Kreislauf, welcher iterative Verbesserungen ermöglicht, ganz im Sinne der Prinzipien des agilen Manifests.

Der Einfluss von Nachhaltigkeit auf die Softwarequalität


Die Nachhaltigkeit eines Softwareentwicklungsprojektes zu bewerten ist schwierig, da die Auswirkungen einzelner Maßnahmen auf die Umwelt oder die Gemeinschaft entweder erst
verzögert eintreten oder nur mit erheblichem Aufwand ermittelbar sind.

Für eine detaillierte Analyse achten Sie bitte darauf, dem Greenhouse Gas Protocol [10] folgend, alle drei Auswirkungsbereiche (Scopes) mit aufzunehmen. Es gibt zwar Dashboards, Reports und Schnittstellen einiger Cloud Provider oder Tools wieCloud Carbon Footprint”, aber diese bilden lediglich einen Teil des Gesamtbildes ab. Neben
diesen Tools gibt es noch verschiedene Proxy-Metriken. Diese Metriken sind meist leichter zu messen oder abzuschätzen, haben aber teilweise nur einen indirekten Nachhaltigkeitsbezug.

Beispiele für Proxy-Metriken sind: Cloud-Kosten, Stromverbrauch, Systemanforderungen und Lebensdauer der Hardware, sowie klassische Code-Qualitätskriterien wie Modulari-
tät, Barrierefreiheit, Skalierbarkeit, Performanz uvm. Das heißt, dass Sie nicht nur mit einer verbesserten Nachhaltigkeit, sondern auch mit einem gesamtheitlich besseren Produkt und einer besseren Produktentwicklung als Ergebnis der Nachhaltigkeitsmeetings rechnen können. Projektteams, welche Nachhaltigkeitsmeetings eingeführt haben, sahen unter anderem Verbesserungen in Performanz, Code-Lesbarkeit, Wartbarkeit, effizienteren CI/CD-Pipelines und reduzierte Betriebskosten als willkommene Nebeneffekte.

Welche konkreten Ziele Sie sich setzen sollten, ist stark von Ihrem Projekt abhängig. Ziele sollten mit Hilfe der Nachhaltigkeitsmeetings festgelegt, ihre Erreichung kontrolliert und ihre Richtigkeit in Frage gestellt werden.

Fazit

Ich hoffe Sie können erkennen, dass Nachhaltigkeitsmeetings mit einem dazugehörigen Prozess Ihnen folgende Vorteile bietet:

  1. Sie schaffen einen Raum, in dem sie sich gezielt mit der Nachhaltigkeit ihres Projektes
    auseinandersetzen können.

2. Durch regelmäßige Meetings wird Nachhaltigkeit als Ziel verankert und wird nicht
aus den Augen verloren.

3. Durch die Orientierung an agilen Prinzipien wie inkrementelle Verbesserung, Flexibilität, Selbstorganisation und direkter Austausch gliedert sich dieser Prozess leicht in bestehende, agile Strukturen wie z. B. Scrum ein.

Das beschriebene Vorgehen ist geeignet, um Nachhaltigkeit als Qualitätsmerkmal für Projekte und Unternehmen einzuführen. Will oder muss man Nachhaltigkeit definieren und
Richtwerte/-linien festlegen, sind Nachhaltigkeitsmeetings ideal. Sie ermöglichen Ihnen eine agile, passgenaue und sukzessive Einführung.

So bilden Sie Nachhaltigkeit langfristig auf zwei Ebenen ab, zum einen über die Nachhaltigkeitsmeetings als ein Teil einer agilen und nachhaltigen Philosophie, zum anderen als Qualitätsmerkmal.

Artikel teilen
Redaktion
Redaktion
Die SQ-Magazin Redaktion ist Ihr Ansprechpartner für alle Fragen, Anregungen und Ideen rund um das SQ-Magazin. Kontaktieren Sie uns gern unter redaktion@sq-magazin.de Wir freuen uns auf Ihre Nachricht!
- Advertisement -Certified DevOps Portfolio
Neueste Artikel
Weitere interessante Artikel
- Advertisement -spot_img
[js-disqus]