Stefan Zörner
20.12.2020
Türchen #20 im arcvent(s)kalender 2020
Die Neue Zürcher Zeitung (NZZ) schrieb vor einer Woche in einem Online-Beitrag:
“Die deutsche Corona-App ist womöglich unter Gesichtspunkten des Datenschutzes Weltklasse, für eine effiziente Bekämpfung der Pandemie allerdings so gut wie unbrauchbar.”
Ein hartes Urteil. Willkommen in der Welt der Architekturbewertung.
“Warum habt Ihr das so gemacht? Wäre es nicht anders besser gewesen? …” Neue im Team, Kollegen aus anderen Teams, Produktverantwortliche, Leute von der Fachseite … – Wer mit einer Softwarelösung konfrontiert wird, hat Fragen.
Und wer auf diese Fragen keine Antworten bekommt (oder sie gleich für sich behält), schätzt ab, beurteilt, wertet. “Das ist viel zu langsam. Damit kann ich nicht arbeiten. Das ist unbrauchbar. …”
Nörgeln ist einfach. Für eine fundierte Architekturbewertung benötigt Ihr aber mindestens zwei Dinge.
Bei der Bewertung einer Softwarelösung haltet Ihr dann diese beiden Dinge gegeneinander. Dabei verfolgt Ihr ein Ziel (“Nörgeln wollen” ist in der Regel keins). Bei frühen Bewertungen geht es beispielsweise oft darum, zu prüfen, ob das Team mit seinen Lösungsansätzen auf dem richtigen Weg ist.
Der Bewertungsgegenstand ist das zu betrachtende Softwaresystem. Beispielsweise die deutsche Corona-App von oben aus der NZZ. Oder die Lösung, an der Euer Team gerade arbeitet.
Die deutsche Corona-App (genauer: Corona-Warn-App, kurz CWA) hat den Charme, dass sie als Open Source entwickelt wird und neben dem eigentlichen Quelltext darüber hinaus auch Dokumentation zur Verfügung steht.
Falls Ihr eine Lösung in Eurem eigenen Umfeld bewerten wollt, ist der Zugriff auf den Quelltext meist das geringste Problem. Falls das Vorhaben schon in der Umsetzung ist.
Hier ein paar Leitfragen, die Euch generell dabei helfen, den Gegenstand abzugrenzen:
Aber der Gegenstand ist nur die halbe Miete.
Mitunter werden aktuelle Trends und Best Practices als Maßstab bei einem Review herangezogen. Der zentrale Teil des Bewertungsmaßstabs sollten aber die architekturrelevanten Anforderungen sein.
Hierzu zählen technische und organisatorische Rahmenbedingungen, die Ihr beim Treffen von Entscheidungen einhalten müsst. Bei der CWA etwa war eine technische Vorgabe, dass die Lösung auf iPhones und Android-Geräten läuft. Zu den organisatorischen Rahmenbedingungen zählte der knappe Zeitplan. Das Budget scheint hingegen keine große Rolle gespielt zu haben.
Einen ähnlich großen Einfluss auf einen Architekturentwurf haben Qualitätsanforderungen. Hierzu zählen Wünsche zu Performance, Sicherheit, Benutzbarkeit … die folgende Abbildung zeigt die Qualitätsmerkmale nach der ISO-Norm
Die obigen Eigenschaften sind nicht unabhängig voneinander. Ein gewählter Lösungsansatz kann eine bestimmte Eigenschaft positiv beeinflussen, die Erfüllung einer anderen aber schmälern. Spitzfindige Tricks, um das letzte an Performance herauszuholen, reduzieren beispielsweise regelmäßig die Portabilität.
Im Idealfall geht Ihr solche Kompromisse beim Bauen Eurer Software bewusst und zielgerichtet ein. Dazu müsst Ihr wissen, welche Qualitätsmerkmale für Euch entscheidend sind.
Oft dienen Architekturbewertungen genau dazu, diese Kompromisse sichtbar zu machen, also für Transparenz unter den Beteiligten zu sorgen. Die bekannteste Bewertungsmethode, nämlich ATAM, führt Kompromisse (englisch Tradeoffs) sogar in ihrem Namen: Architecture Tradeoff Analysis Method.
Auch das Zitat vom Anfang dieses Beitrags arbeitet einen Kompromiss heraus und kritisiert ihn: Das Erreichen der Sicherheit ging nach Meinung des NZZ-Kommentators auf Kosten der funktionalen Eignung der Lösung.
Mein Kollege Falk Sippach und ich teilen auf der OOP-Konferenz 2021 unsere Erfahrungen zu Architekturbewertungen. Titel des Vortrags: “So gehen Architektur-Reviews!”. Wir diskutieren typische Anlässe für Reviews und Bewertungen, und welche Voraussetzungen dafür erfüllt sein müssen.
Die unterschiedlichen Ansätze und Werkzeuge für Bewertungen illustrieren wir im Vortrag anhand – Überraschung!! - der deutschen Corona-Warn-App. Ihr erfahrt daher auch, wie die CWA funktioniert, unter welchen Rahmenbedingungen sie entwickelt wurde, und wie sie sich von Lösungen anderer Länder unterscheidet. Wir arbeiten zentrale Kompromisse heraus, und wenden neben qualitativen Methoden (wie z.B. ATAM) auch quantitative Techniken an.
Konferenzen wie die OOP haben einen großen zeitliche Vorlauf, auch was die Programmplanung angeht. Als wir den Vortrag ursprünglich eingereicht haben, war die CWA noch nicht erschienen. Es war weder klar, ob sie im Februar 2021 noch ein Thema sein wird, noch ob die Konferenz überhaupt stattfinden kann.
Heute wissen wir: Die OOP findet statt (online). Und zumindest für die Neue Zürcher Zeitung ist die CWA auch noch ein Thema. Ob unser Urteil auch so vernichtend ausfällt?
So gehen Architektur-Reviews!
Die deutsche Corona-Warn-App unter der Lupe.
Stefan Zörner, Falk Sippach
OOP-Konferenz 2021 (remote)
10. Februar 2021, 09:00 - 10:30 Uhr, Vortrag im Programm hier
Wenn Ihr nicht bis dahin warten, aber trotzdem schon ein wenig mehr über Reviews erfahren wollt, hätte ich zum einen noch einen vertiefenden Online-Artikel von mir auf “Informatik Aktuell” parat:
Nörgeln ist einfach. Aber was (genau) ist eigentlich Architekturbewertung?
Und noch besser: Gleich morgen wartet Stefan Toth hinter Türchen #21 unseres Arcventskalenders mit einem multimedialen Beitrag zu unserem (wie ich finde) schönsten Architektur-Spickers auf Euch. Dem zu Architektur-Reviews.
Ich wünsche Euch noch einen schönen 4. Advent!