Be Software Architecture Wise
Be Wise Apps

Read in English · Leer en español · Lire en français

Abschnitt 11.1 von 11.8 · Fortgeschritten · 28 Min. Lesezeit

Architekturbewertung und ATAM

Videolektion

5 Min. · auf Englisch gesprochen, mit Untertiteln
Nur anhören (Audio)
Transkript lesen

Jede Architektur ist eine Wette. Diese Lektion zeigt, wie Sie diese Wette prüfen, bevor das Geld gebunden ist, mit der Architecture Tradeoff Analysis Method, kurz ATAM.

Bevor eine Stadt eine neue Brücke baut, prüfen unabhängige Ingenieure den Entwurf. Sie fragen, was bei Hochwasser, bei Sturm und unter den schwersten Lkw geschieht. Sie zeigen, wo eine Entscheidung, die Geld spart, eine andere Gefahr verschärft. Sie entwerfen die Brücke nicht neu und geben ihr keine Note. Sie sagen den Eigentümern, wo die echten Risiken liegen, solange Änderungen noch günstig sind. Die Architekturbewertung leistet dasselbe für Software.

Eine Bewertung stellt eine enge, praktische Frage: Welche Architekturentscheidungen gefährden, gemessen an dem, was dieses System leisten muss, diese Ziele? Sie arbeitet mit Entscheidungen, nicht mit Code, und kann daher schon an einem Whiteboard-Entwurf beginnen. Am wertvollsten ist sie vor einer großen Festlegung, etwa einem Anbietervertrag oder einer Cloud-Migration. Kommt sie zu spät, kann man ihre Ergebnisse nur noch bedauern.

ATAM wurde im Jahr 2000 von Rick Kazman, Mark Klein und Paul Clements vom Software Engineering Institute, kurz SEI, beschrieben. Ein Bewertungsteam aus drei bis fünf Personen von außerhalb des Projekts führt sie durch. Unabhängigkeit zählt: Bewerter, die das System entworfen haben, finden weniger Risiken. Sie arbeiten mit den Entscheidungsträgern, etwa dem Architekten und dem Auftraggeber, und mit einem größeren Kreis von Stakeholdern, von der Entwicklung bis zu Betrieb, Sicherheit und Support. ATAM vergibt keine Punktzahl und keine Bestehensgrenze. Sie findet, wo Entscheidungen die Geschäftsziele gefährden und wo sie Abwägungen zwischen Qualitäten erzwingen.

Die Methode läuft in vier Phasen, mit neun Schritten in zwei Bewertungssitzungen. In Phase null klären die Leitungen über einige Wochen Umfang, Kosten und Team und sammeln die Architekturdokumente. Phase eins dauert etwa einen Tag mit den Entscheidungsträgern. Die Schritte eins bis sechs stellen die Methode, die geschäftlichen Treiber und die Architektur vor, bauen dann den Utility Tree auf und analysieren. Nach einer Pause von zwei bis drei Wochen kommen in Phase zwei für etwa zwei Tage die weiteren Stakeholder hinzu. Sie sammeln eigene Szenarien und stimmen darüber ab, und diese werden dann analysiert. Phase drei ist etwa eine Woche Nacharbeit: der Abschlussbericht, mit Risikothemen, die zu Backlog-Einträgen und Entscheidungsdokumenten werden.

Das Herzstück der Methode ist die Analyse. Die Bewerter nehmen die priorisierten Szenarien und die Architekturansätze, die sie adressieren. Sie bitten den Architekten, jedes Szenario durch den Entwurf zu spielen, und bohren nach. Wie viele synchrone Aufrufe liegen auf diesem Pfad? Was passiert, wenn dieser Knoten ausfällt? Jede Antwort wird eingeordnet. Ein Risiko ist eine Entscheidung oder eine fehlende Entscheidung, die das Erreichen eines wichtigen Ziels verhindern kann. Ein Nicht-Risiko ist eine tragfähige Entscheidung, festgehalten mit ihren Annahmen. Ein Sensitivitätspunkt ist eine Eigenschaft, von der eine Qualität entscheidend abhängt. Ein Trade-off-Punkt ist ein Sensitivitätspunkt für mehr als eine Qualität, sodass die Verbesserung der einen die andere verschlechtert. Risiken und Trade-off-Punkte werden zu Risikothemen gruppiert, jedes mit einer gemeinsamen Ursache. Und jedes Thema nennt die geschäftlichen Treiber, die es gefährdet, dieselben Treiber, die die Szenarien geprägt haben.

Hier ist eine verdichtete ATAM der Essenslieferplattform, mit viertausend Restaurants und neuntausend Kurieren. Das Unternehmen will innerhalb von achtzehn Monaten zur Freitagsspitze von fünfzig auf hundert Bestellungen pro Sekunde wachsen. Die Bestelllatenz muss beim neunundneunzigsten Perzentil unter drei Sekunden bleiben, doch allein der Zahlungsanbieter braucht zweieinhalb Sekunden. Nach Littles Gesetz sind das zweihundertfünfzig gleichzeitig laufende Anfragen für zweihundert Worker. Risiko R1. Läuft der Anbieter in ein Timeout, lässt der aktuelle Entwurf die Bestellung scheitern: Risiko R2. Später aus einer Queue zu autorisieren würde helfen, aber dann würden manche angenommenen Bestellungen bei der Zahlung scheitern. Das ist Trade-off-Punkt T1. Nicht alles ist ein Risiko. Outbox, Kafka mit drei Replikaten und idempotente Consumer bedeuten keine verlorenen Bestellungen: Nicht-Risiko N1, mit festgehaltener Annahme. In Phase zwei stimmten Stakeholder stark für ein Szenario, das im Baum fehlte: Ein Restaurant-Tablet, das zur Spitzenzeit zehn Minuten offline ist, muss trotzdem jede Bestellung erhalten. Risiko R5, ein blinder Fleck. Die Risiken bilden zwei Themen: Drittanbieter auf synchronen kritischen Pfaden sowie Wiederherstellungs- und Zustellgarantien, die der den Restaurantketten versprochenen Verfügbarkeit hinterherhinken.

Eine vollständige ATAM ist teuer: In der groben Veranschaulichung des Kurses sind es rund sechzig Personentage. Für ein System, dessen Ausfall Millionen kosten würde, ist das eine günstige Versicherung. Für ein kleines Team ist es unverhältnismäßig, also richten Sie die Methode an der Tragweite aus. Eine reduzierte ATAM lässt sich in einem Tag oder weniger durchführen. Ergebnisse, die nicht zu Entscheidungsdokumenten, Backlog-Einträgen und Fitness Functions mit Verantwortlichen werden, sind innerhalb eines Quartals vergessen.

Der vollständige Abschnitt beschreibt alle neun Schritte und wie die Cost Benefit Analysis Method Geld auf den Tisch legt. Als Nächstes, in Abschnitt elf Punkt zwei, geht es um leichtgewichtige Reviews und Risk-Storming. Bis gleich.

Was Sie wissen müssen

Warum eine Architektur bewerten

Jede Architektur ist eine Wette. Wenn ein Team einen Event Broker, eine Datenbank pro Service oder eine einzige Cloud-Region wählt, sagt es voraus, dass diese Entscheidungen die Performance, Verfügbarkeit, Sicherheit und Kosten liefern, die das Unternehmen braucht. Abschnitt 1.3 hat gezeigt, warum solche Wetten zählen: Die Kosten, eine strukturelle Entscheidung zu ändern, wachsen mit allem, was darauf aufgebaut ist, und einige der teuersten Fehlschläge der Softwaregeschichte waren Fehler der Anordnung, nicht einzelner Codezeilen. Die Architekturbewertung ist die bewusste Prüfung dieser Wette, bevor oder während das Geld ausgegeben wird.

Eine Bewertung stellt eine enge, praktische Frage: Welche Architekturentscheidungen gefährden, gemessen an dem, was dieses System leisten muss, diese Ziele? Sie ist weder ein Code-Review noch ein Schönheitswettbewerb zwischen Stilen noch ein Audit der Dokumentationsqualität. Sie arbeitet mit Entscheidungen und deren Folgen für Qualitätsmerkmale und kann daher lange vor dem ersten Code stattfinden, an einem Whiteboard-Entwurf oder an einer Reihe von Entscheidungsdokumenten, und sie lässt sich bei einem System wiederholen, das seit Jahren läuft.

Eine Bewertung hat auch Nutzen über die Ergebnisse hinaus. Stakeholder, die sich selten begegnen (Product Owner, Betrieb, Sicherheit, Finanzen, Entwicklung), müssen sich einigen, was am wichtigsten ist, und das legt oft widersprüchliche Annahmen offen. Der Architekt muss den Entwurf so klar erklären, dass Außenstehende ihn hinterfragen können, was die Dokumentation verbessert. Und die Organisation erhält eine Aufzeichnung bekannter Risiken, die sie bewusst akzeptiert hat, was etwas ganz anderes ist als Risiken, die niemand bemerkt hat.

Wann bewerten

Der beste Zeitpunkt für eine Bewertung ist, wenn genug entschieden ist, damit es etwas zu prüfen gibt, aber bevor diese Entscheidungen teuer rückgängig zu machen sind. In der Praxis gibt es mehrere natürliche Zeitpunkte, und reife Organisationen nutzen für jeden einen anderen Umfang der Bewertung.

Zeitpunkte für eine Bewertung

AuslöserWas geprüft wirdTypischer Umfang
Eine Kandidatenarchitektur liegt vor, vor dem Bau im großen MaßstabOb die wichtigsten Stile und Taktiken die priorisierten Qualitätsszenarien erfüllen könnenVollständige oder reduzierte ATAM bei großen oder langlebigen Systemen; sonst ein leichtgewichtiges Review
Vor einer großen FestlegungEin Anbietervertrag, eine Cloud-Migration, eine Finanzierungsentscheidung oder ein Plattformwechsel, die teuer rückgängig zu machen wärenFormal, oft mit externen Bewertern, weil die Entscheidung eine Einwegtür ist
Deutliche Änderung der geschäftlichen TreiberNeue Märkte, eine Fusion, ein zehnfaches Wachstumsziel, neue RegulierungDen Utility Tree neu durchgehen und die geänderten Szenarien analysieren
Angesammelte Änderungen und DriftOb das gebaute System noch der angestrebten Architektur und ihren Gründen entsprichtRegelmäßiges leichtgewichtiges Review plus automatisierte Fitness Functions
Übernahme oder Due DiligenceOb ein bestehendes System die Pläne des Käufers tragen kannZeitlich begrenzte Bewertung eines bestehenden Systems, oft kombiniert mit Codeanalyse
Nach einem schweren VorfallOb der Vorfall eine architektonische Schwäche offengelegt hat und nicht nur einen einmaligen FehlerGezielte Analyse der betroffenen Szenarien

Zu frühes Bewerten verschwendet Aufwand an Entscheidungen, die noch nicht real sind; zu spätes Bewerten macht aus Ergebnissen bloßes Bedauern. Eine nützliche Regel aus Fairbanks’ risikogetriebenem Modell (Abschnitt 1.8) gilt auch hier: Investieren Sie in die Bewertung im Verhältnis zum Risiko. Ein internes Werkzeug zweier Teams braucht keinen zweitägigen Workshop; eine nationale Zahlungsplattform schon.

ATAM: Ursprung, Zweck und Beteiligte

Die Architecture Tradeoff Analysis Method (ATAM) ist die bekannteste Bewertungsmethode. Rick Kazman, Mark Klein und Paul Clements vom Software Engineering Institute (SEI) der Carnegie Mellon University beschrieben sie im technischen Bericht ATAM: Method for Architecture Evaluation (CMU/SEI-2000-TR-004, August 2000). Sie ging aus der früheren Software Architecture Analysis Method (SAAM) hervor, die Kazman und Kollegen 1994 veröffentlichten und die sich vor allem auf Änderbarkeit konzentrierte. ATAM wird auch in Software Architecture in Practice von Bass, Clements und Kazman beschrieben, inzwischen in der vierten Auflage (2021).

Ihr Zweck wird oft missverstanden. ATAM vergibt keine Punktzahl und keine Bestehensgrenze für eine Architektur, und sie beweist nicht, dass ein System seine Anforderungen erfüllen wird. Sie zeigt, wo Architekturentscheidungen die Geschäftsziele gefährden und wo sie Abwägungen zwischen Qualitäten erzwingen, damit die Verantwortlichen entscheiden können, was zu tun ist. Der Name der Methode betont Abwägungen, weil die meisten interessanten Risiken dort liegen, wo eine Qualität auf Kosten einer anderen erkauft wird.

Drei Gruppen nehmen teil. Das Bewertungsteam, meist drei bis fünf Personen von außerhalb des Projekts, führt die Methode durch: eine Teamleitung, eine Bewertungsleitung, die moderiert, Protokollführende, die Szenarien und Abläufe festhalten, und Fragende mit Fachwissen zu bestimmten Qualitäten. Die Entscheidungsträger des Projekts sind der Architekt, die Projekt- oder Produktleitung und der Auftraggeber oder Kunde, der auf die Ergebnisse reagieren kann. Die Architektur-Stakeholder sind alle anderen Beteiligten: Entwicklung, Test, Betrieb, Sicherheit, Integration, Support und Vertretungen der Nutzer. Unabhängigkeit zählt: Bewerter, die das System entworfen haben oder dem Architekten unterstellt sind, finden weniger Risiken.

Die Phasen von ATAM

Die vier Phasen von ATAM: Vorbereitung, zwei Bewertungssitzungen mit einer Pause von zwei bis drei Wochen dazwischen und NacharbeitPhase 0Partnerschaft undVorbereitungPhase 1Bewertung:Schritte 1–6Phase 2Bewertung:Schritte 7–9Phase 3Nacharbeit2–3 Wochen PauseUmfang, Kostenund Team klärenArchitektur-dokumentesammeln1 ATAM vorstellen2 Geschäftstreiber3 Die Architektur4 Ansätze5 Utility Tree6 Analyse7 Sammeln undpriorisieren(Szenarien)8 Neu analysieren9 Ergebnisse zeigenSchlussberichtRisikothemen inBacklog und ADRsAufwand undLehren festh.Nur Leitung;einige WochenEntscheider;etwa 1 TagPlus Stakeholder;etwa 2 TageBewertungsteam;etwa 1 Woche
Zwischen den beiden Bewertungssitzungen liegt eine Pause, in der das Team die ersten Ergebnisse verarbeitet und der größere Kreis der Stakeholder zusammengestellt wird.

Die neun Schritte

  1. 1. ATAM vorstellenDie Bewertungsleitung erklärt die Methode, die Rollen der Beteiligten und die Ergebnisse, damit niemand die Sitzung für ein Audit oder ein Design-Review seiner persönlichen Arbeit hält.
  2. 2. Die geschäftlichen Treiber vorstellenEine leitende Vertretung des Geschäfts erläutert in geschäftlichen Begriffen die Ziele des Systems, die Randbedingungen, die Stakeholder und die wichtigsten Qualitäten. Diese geschäftlichen Treiber sind der Maßstab für alles Weitere.
  3. 3. Die Architektur vorstellenDer Architekt beschreibt die Architektur auf angemessener Ebene: Kontext, Hauptstrukturen, Laufzeitverhalten, Deployment und wie sie die Treiber adressiert. Ein typisches Zeitlimit von etwa einer Stunde erzwingt Fokus.
  4. 4. Architekturansätze identifizierenDer Architekt benennt die verwendeten Architekturansätze (Stile, Muster und Taktiken wie ein Broker, Replikation oder Caching), und das Bewertungsteam katalogisiert sie, ohne sie schon zu analysieren.
  5. 5. Den Utility Tree der Qualitätsmerkmale erstellenDie Entscheidungsträger erstellen oder verfeinern einen Utility Tree und bewerten jedes Blattszenario nach geschäftlicher Bedeutung und technischer Schwierigkeit.
  6. 6. Die Architekturansätze analysierenFür die Szenarien mit der höchsten Priorität fragen die Bewerter, welche Ansätze jedes davon adressieren, und hinterfragen sie mit qualitätsspezifischen Fragen; dabei halten sie Risiken, Nicht-Risiken, Sensitivitätspunkte und Trade-off-Punkte fest.
  7. 7. Szenarien sammeln und priorisierenIn Phase 2 schlägt der größere Kreis der Stakeholder eigene Szenarien vor und stimmt über sie ab. Das Ergebnis wird mit dem Utility Tree verglichen; wichtige Szenarien, die im Baum fehlen, sind bereits für sich ein Befund.
  8. 8. Die Architekturansätze erneut analysierenDie am höchsten bewerteten neuen Szenarien werden wie in Schritt 6 analysiert, nun mit dem Wissen der anwesenden Stakeholder.
  9. 9. Die Ergebnisse vorstellenDas Bewertungsteam stellt Ansätze, Szenarien, Utility Tree, Risiken, Nicht-Risiken, Sensitivitätspunkte, Trade-off-Punkte und Risikothemen vor und setzt jedes Thema in Bezug zu den geschäftlichen Treibern, die es gefährdet.

Das Vokabular der Analyse

Das Herzstück der Methode sind die Schritte 6 und 8. Für jedes wichtige Szenario bitten die Bewerter den Architekten, durchzuspielen, wie die Architektur reagiert, und sie bohren mit Fragen nach, die aus jeder Qualität stammen: Wie viele synchrone Aufrufe liegen auf diesem Pfad, was passiert mit laufenden Anfragen, wenn dieser Knoten ausfällt, wo ist diese Zugangsberechtigung gespeichert, was begrenzt die Queue? Jede Antwort wird mit fünf Begriffen eingeordnet, die weit über ATAM hinaus zum Standardvokabular geworden sind.

Die Ergebnisse der Analyse

ErgebnisBedeutungBeispiel einer Essenslieferplattform
RisikoEine Entscheidung oder eine fehlende Entscheidung, die verhindern kann, dass ein wichtiges Szenario oder Geschäftsziel erreicht wirdDie Kartenautorisierung liegt im synchronen Bestellpfad, daher verlangsamt ein langsamer Zahlungsanbieter jede Bestellung
Nicht-RisikoEine Entscheidung, die für das Szenario als tragfähig beurteilt wird, festgehalten mit den Annahmen, von denen sie abhängtTransactional Outbox und idempotente Consumer erfüllen das Szenario „keine verlorenen Bestellungen“, sofern der Broker jede Partition dreifach repliziert
SensitivitätspunktEine Eigenschaft von Komponenten oder Verbindungen, die für eine Qualitätsantwort entscheidend istDie Bestelllatenz reagiert empfindlich auf die Zahl synchroner Hops und auf die p99-Antwortzeit des Anbieters
Trade-off-PunktEine Eigenschaft, die für mehr als eine Qualität ein Sensitivitätspunkt ist, sodass die Verbesserung der einen die andere verschlechtertDas Intervall der Kurier-Standortmeldungen: Kürzer verbessert die Aktualität der Karte, leert aber die Handyakkus und erhöht mobile Daten- und Erfassungskosten
RisikothemaEine Gruppe von Risiken mit einer gemeinsamen Ursache, verknüpft mit den geschäftlichen Treibern, die sie gefährdetDrittanbieterdienste liegen auf synchronen kritischen Pfaden und gefährden das Ziel, das Bestellvolumen ohne Konversionsverluste zu verdoppeln

Wie die Analyse ihre Ergebnisse erzeugt

Wie die ATAM-Analyse Szenarien und Architekturansätze in Risiken, Nicht-Risiken, Sensitivitätspunkte und Trade-off-Punkte verwandelt, gruppiert zu Risikothemen, die auf geschäftliche Treiber zurückverweisenPriorisierteSzenarienAnsätzeArchitektur-entscheid.AnalysebohrendeFragenRisikenNon-RisksSensitivitätspunkteTrade-off-PunkteThemen(Risiko)Geschäftliche Treiberprägenjedes Thema nennt die gefährdeten Ziele
Die Analyse setzt priorisierte Szenarien in Bezug zu den Entscheidungen, die sie adressieren; die daraus entstehenden Risiken werden zu Themen gruppiert, die auf die gefährdeten Geschäftsziele zurückverweisen.

Nicht-Risiken verdienen mehr Aufmerksamkeit, als sie gewöhnlich bekommen. Festzuhalten, dass eine Entscheidung wegen einer bestimmten Annahme tragfähig ist (drei Replikate, eine vertraglich zugesicherte Antwortzeit eines Lieferanten, Traffic unterhalb einer bestimmten Grenze), macht aus einer vagen Beruhigung etwas, das sich später prüfen lässt. Ändert sich die Annahme, wird das Nicht-Risiko zum Risikokandidaten. Sensitivitäts- und Trade-off-Punkte sind nach der Bewertung ähnlich wertvoll: Sie sagen künftigen Maintainern, welche Parameter sie nur mit Vorsicht ändern sollten, und sie sind natürliche Orte für die automatisierten Prüfungen aus Abschnitt 11.3.

Der Utility Tree noch einmal

Abschnitt 2.8 hat den Utility Tree als Werkzeug zur Priorisierung von Qualitätsanforderungen eingeführt. Er entstand in ATAM und spielt innerhalb der Methode zwei unterschiedliche Rollen. In Schritt 5 bauen die Entscheidungsträger den Baum von oben nach unten auf: Nutzen, dann Qualitätsmerkmale, dann Verfeinerungen, dann konkrete Szenarien mit Bewertung (geschäftliche Bedeutung, technische Schwierigkeit). Die (H,H)-Blätter werden zur Tagesordnung für Schritt 6, weil sie am wichtigsten und am schwersten zu erreichen sind; dort verstecken sich Risiken am ehesten.

In Schritt 7 sammelt der größere Kreis der Stakeholder Szenarien von unten nach oben und stimmt über sie ab, ähnlich wie in einem Quality Attribute Workshop. Der Vergleich beider Sichten ist einer der aufschlussreichsten Momente einer Bewertung. Tauchen die wichtigsten Szenarien der Stakeholder bereits im Baum auf, verstehen die Entscheidungsträger den Zweck ihres Systems. Fehlt ein Szenario, das viele Stimmen erhält, etwa ein Betriebsszenario über Restaurant-Tablets, die offline gehen, haben die Entscheidungsträger einen blinden Fleck, und die Architektur womöglich auch. Solche Szenarien werden in den Baum aufgenommen und in Schritt 8 analysiert.

Ausgearbeitetes Beispiel

Ausgearbeitetes Beispiel: eine verdichtete ATAM der Essenslieferplattform

Die Plattform aus den Kapiteln 2 und 4 verbindet Kunden, 4000 Restaurants und 9000 Kuriere. Die geschäftlichen Treiber sind, das Bestellvolumen innerhalb von 18 Monaten zu verdoppeln (von 50 auf 100 Bestellungen pro Sekunde zur Freitagsspitze), ohne Konversionen zu verlieren, und nationale Restaurantketten zu gewinnen, die vertraglich zugesicherte Verfügbarkeit verlangen. Die Architektur: Microservices pro Bounded Context (Bestellungen, Restaurant, Disposition, Benachrichtigung), jeweils mit eigener PostgreSQL-Datenbank; ein API-Gateway; synchrones REST für die Bestellaufgabe, einschließlich der Kartenautorisierung bei einem externen Zahlungsanbieter; ein Kafka-Broker mit Transactional Outbox für Bestellereignisse; Kurierpositionen, die alle 4 Sekunden gesendet und in Redis gehalten werden; eine Cloud-Region über drei Availability Zones, mit nächtlichen Backups, die in eine zweite Region kopiert werden. Der Utility Tree der Phase 1 übernahm die sechs Szenarien aus Abschnitt 2.8.

Bestelllatenz (H,H)p95 unter 1,5 s und p99 unter 3 s bei 100 Bestellungen/s. Ansätze: Gateway, vier synchrone Hops, Kartenautorisierung in der Anfrage. Gemessene Latenz des Anbieters: p95: 900 ms, p99: 2,5 s
AnalyseAllein der Anbieter verbraucht den größten Teil des p99-Budgets, sodass 500 ms für vier Hops und Datenbank-Schreibvorgänge bleiben. Nach Littles Gesetz (Abschnitt 2.4) bedeuten 100 Bestellungen/s bei 2,5 s 250 gleichzeitig laufende Anfragen; der Pool von 200 Workern des Bestellservice ist gesättigt, sobald der Anbieter langsamer wird. Risiko R1; Sensitivitätspunkt S1: Zahl der synchronen Hops und p99 des Anbieters
Verfügbarkeit des Checkouts (H,H)Zahlungsanbieter läuft zur Spitzenzeit in Timeouts: Bestellungen werden angenommen und in die Queue gestellt, keine geht verloren, Kunde wird innerhalb von 10 s informiert. Der aktuelle Entwurf lässt die Bestellung scheitern, wenn die Autorisierung in ein Timeout läuft. Risiko R2
Vorgeschlagene OptionAsynchron autorisieren: die Bestellung als ausstehend annehmen, aus einer Queue autorisieren. Verbessert Latenz und Verfügbarkeit, aber manche angenommenen Bestellungen scheitern später bei der Zahlung, und Restaurants dürfen keine unbezahlten Bestellungen zubereiten. Trade-off-Punkt T1: wo im Bestellablauf die Zahlung bestätigt wird
Keine verlorenen Bestellungen (Teil von H,H)Outbox in derselben lokalen Transaktion wie die Bestellung, Kafka mit drei Replikaten, idempotente Consumer. Nicht-Risiko N1, sofern Replikationsfaktor 3 und Producer-Bestätigungen von allen synchronen Replikaten (In-Sync Replicas) gelten
Ausfall einer Region (H,M)RTO 15 min, RPO 1 min. Nächtliche Backups ergeben ein RPO von bis zu 24 Stunden und eine Wiederherstellung, die in Stunden gemessen wird. Risiko R3
Aktualität der Verfolgung (M,M)Kartenposition nie älter als 5 s. 9000 Kuriere alle 4 s ergeben 2250 Schreibvorgänge/s, für Redis problemlos. Trade-off-Punkt T2: das Aktualisierungsintervall (Aktualität gegen Akku, Daten und Kosten)
Kontoübernahme (H,M)Rate Limiting nach IP-Adresse am Gateway erkennt kein Credential Stuffing, das über Tausende von Adressen verteilt ist. Risiko R4
Brainstorming in Phase 2Stakeholder aus Restaurants und Betrieb stimmten stark für ein Szenario, das im Baum fehlte: Ein Restaurant-Tablet, das zur Spitzenzeit 10 Minuten offline ist, muss beim erneuten Verbinden jede Bestellung erhalten. Push-Benachrichtigungen werden einmal und ohne Bestätigung gesendet. Risiko R5 und ein blinder Fleck im Baum
RisikothemenThema A (R1, R2, R4): Abhängigkeiten von Drittanbietern und am Rand des Systems liegen ohne Isolation auf synchronen kritischen Pfaden; gefährdet die Verdopplung des Volumens ohne Konversionsverluste. Thema B (R3, R5): Wiederherstellungs- und Zustellgarantien hinken der Verfügbarkeit hinterher, die Restaurantketten versprochen wird; gefährdet die Verträge mit den Ketten
Was danach geschahEntscheidungsdokumente zur asynchronen Autorisierung mit einem Status „ausstehend“ (T1 wird akzeptiert, Restaurants werden erst nach der Autorisierung benachrichtigt), zu einer Warm-Standby-Region, zur bestätigten Zustellung von Bestellungen an Tablets und zur Erkennung von Credential Stuffing beim Identity Provider. Die Annahmen von N1 wurden zu einer automatisierten Konfigurationsprüfung

Die Ergebnisse betreffen Entscheidungen, nicht Personen oder Codequalität, und jedes lässt sich auf ein Szenario und einen geschäftlichen Treiber zurückführen.

Zwei der fünf Risiken stammten aus Szenarien, die der Architekt nicht priorisiert oder nicht bedacht hatte; genau dafür gibt es den Schritt mit den Stakeholdern.

Trade-off-Punkte sind keine Probleme, die beseitigt werden müssen: T1 wurde bewusst akzeptiert und dokumentiert, mit seinen Folgen für Restaurants und Kunden.

CBAM: Geld auf den Tisch legen

ATAM sagt Ihnen, wo die Risiken liegen; sie sagt Ihnen nicht, welche Abhilfen ihr Geld wert sind. Die Cost Benefit Analysis Method (CBAM), am SEI von Rick Kazman, Jai Asundi und Mark Klein entwickelt (erstmals 2001 veröffentlicht), baut auf den Szenarien einer ATAM auf, um diese wirtschaftliche Begründung zu liefern.

In groben Zügen nehmen die Stakeholder die priorisierten Szenarien und ordnen für jedes mehreren Antwortniveaus einen Nutzen (auf einer Skala von 0 bis 100) zu: schlechtester Fall, aktueller Stand, Ziel und bester Fall. Die Architekten schlagen Architekturstrategien vor und schätzen die Antwort, die jede erreichen würde. Der Nutzengewinn jeder Strategie wird an der Nutzen-Antwort-Kurve des Szenarios abgelesen und mit der Priorität des Szenarios gewichtet; über alle Szenarien summiert ergibt das den Nutzen der Strategie. Nutzen geteilt durch Kosten ergibt ein Kosten-Nutzen-Verhältnis (Value for Cost, VFC), und die Strategien werden im Rahmen des verfügbaren Budgets in der Reihenfolge ihres VFC gewählt und dann gegen Intuition und Randbedingungen auf Plausibilität geprüft.

Eine Mini-CBAM für das Risiko eines Regionsausfalls

StrategieErwartete AntwortNutzengewinn x GewichtJährliche KostenKosten-Nutzen-Verhältnis
Aktuell: nächtliche BackupsRTO etwa 6 h, RPO bis zu 24 hNutzen 10 (Basiswert)bereits bezahltn/a
A: Warm-Standby-Region, asynchrone DatenbankreplikationRTO 10 min, RPO unter 1 min(90 - 10) x 0.3 = 24£180k24 / 180 = 0.13
B: Pilot Light (Daten repliziert, Rechenleistung bei Bedarf gestartet)RTO 40 min, RPO unter 1 min(60 - 10) x 0.3 = 15£70k15 / 70 = 0.21

Strategie B bringt mehr Nutzen pro Pfund, verfehlt aber die Wiederherstellungszeit von 15 Minuten, die die Restaurantverträge verlangen. Die Zahlen informieren die Entscheidung; sie treffen sie nicht. Der eigentliche Wert von CBAM liegt darin, dass es explizite, vergleichbare Schätzungen von Nutzen und Kosten erzwingt und offenlegt, wann eine Randbedingung und nicht ein Verhältnis entscheiden sollte. Seine Schwäche ist, dass Nutzen und Kosten Einschätzungen sind; Teams sollten sie variieren und prüfen, ob sich die Rangfolge ändert, genau wie Abschnitt 1.6 es für gewichtete Entscheidungsmatrizen empfiehlt. Abschnitt 11.8 zeigt, wie man aus solchen Schätzungen einen Business Case macht.

Kosten und Praxis

Eine vollständige ATAM kostet viel Arbeitszeit. Als grobe Veranschaulichung: Ein vierköpfiges Bewertungsteam, das jeweils zwei Tage in die Vorbereitung steckt (8 Personentage), eine eintägige Phase 1 mit drei Entscheidungsträgern (7), eine zweitägige Phase 2 mit zehn zusätzlichen Stakeholdern (34) und eine Woche Nacharbeit durch zwei Personen (10) ergeben rund 60 Personentage, bevor irgendetwas behoben ist. Für ein System, dessen Ausfall Millionen kosten würde oder das ein Jahrzehnt laufen soll, ist das eine günstige Versicherung. Für ein kleines Produktteam ist es unverhältnismäßig.

Mehrere Praktiken halten Bewertungen lohnend. Skalieren Sie die Methode: Bass, Clements und Kazman beschreiben eine leichtgewichtige Architekturbewertung, eine reduzierte ATAM für interne Teams, die sich in einem Tag oder weniger durchführen lässt, und manche Organisationen führen nur die Schritte 2 bis 6 mit einer Handvoll Personen durch. Bereiten Sie gründlich vor: Der größte Teil der Kosten einer schlechten Bewertung entsteht dadurch, dass man erst im Raum feststellt, dass niemand die Architektur beschreiben kann. Halten Sie die Bewerter unabhängig, aber informiert. Vereinbaren Sie vorab, wem die Ergebnisse gehören und wie sie weiterverfolgt werden, idealerweise als Entscheidungsdokumente und Backlog-Einträge mit Verantwortlichen. Und wiederholen Sie die Bewertung: Die Ergebnisse sind eine Momentaufnahme, und die Risiken ändern sich mit dem System und dem Geschäft.

Fachleute sind sich uneinig, welchen Platz die Methode heute hat. Kritiker sehen in ihr ein schwergewichtiges Relikt großer, vorab geplanter Projekte, das schlecht zu Teams passt, die viele Male am Tag deployen. Befürworter entgegnen, dass die Konzepte (Szenarien, Sensitivitäts- und Trade-off-Punkte, Risikothemen) genau das sind, was agilen Teams fehlt, wenn sie die Bewertung auslassen, und dass sich die Methode verkleinern lässt. Beide haben einen Punkt: Das volle Zeremoniell passt zu Systemen mit hoher Tragweite und langer Lebensdauer und zu großen Festlegungen, während das Vokabular und die Gewohnheit szenariogetriebenen Fragens überall hingehören. Abschnitt 11.2 behandelt das leichtere Ende.

Häufige Fragen

Lässt sich ATAM auf ein bereits bestehendes System anwenden?

Ja. Die Schritte sind dieselben; die Architektur wird aus Dokumentation, Code und den Menschen, die das System betreiben, rekonstruiert, und Messungen am laufenden System ersetzen Schätzungen. Ein bestehendes System zu bewerten ist vor einer großen Erweiterung, einer Migration oder einer Übernahme üblich.

Bedeutet eine ATAM ohne Befund, dass das System seine Anforderungen erfüllen wird?

Nein. ATAM untersucht eine Stichprobe von Szenarien auf der Ebene von Designentscheidungen. Sie verringert die Wahrscheinlichkeit unangenehmer Überraschungen, kann aber Messung, Tests und Betriebserfahrung nicht ersetzen. Ihre Ergebnisse sollten nach Möglichkeit in Tests und Fitness Functions überführt werden.

Wer sollte die Architektur vorstellen?

Der Architekt oder Lead Engineer, der sie am besten kennt. Aufgabe des Bewertungsteams ist es, Fragen zu stellen, nicht vorzutragen, und Aufgabe des Architekten ist es, zu erklären und zu erkunden, nicht zu verteidigen.

Prüfen Sie Ihr Verständnis

Was ist der Unterschied zwischen einem Sensitivitätspunkt und einem Trade-off-Punkt?

Ein Sensitivitätspunkt ist eine Eigenschaft, die für eine Qualitätsantwort entscheidend ist. Ein Trade-off-Punkt ist eine Eigenschaft, die zugleich für mehrere Qualitäten ein Sensitivitätspunkt ist, sodass ihre Änderung der einen hilft und der anderen schadet.

Warum hält ATAM Nicht-Risiken fest, und was muss mit ihnen festgehalten werden?

Um zu zeigen, welche Entscheidungen untersucht und als tragfähig beurteilt wurden. Auch die Annahmen, von denen sie abhängen, müssen festgehalten werden, damit das Nicht-Risiko erneut geprüft werden kann, wenn sich eine Annahme ändert.

Was bedeutet es, wenn Stakeholder in Phase 2 stark für ein Szenario stimmen, das im Utility Tree fehlt?

Die Entscheidungsträger haben einen blinden Fleck in Bezug auf das, was zählt, und die Architektur adressiert dieses Szenario womöglich nicht. Es wird in den Baum aufgenommen und in Schritt 8 analysiert.

Wie wird in CBAM das Kosten-Nutzen-Verhältnis einer Strategie berechnet?

Ihr Nutzen, also der nach Priorität gewichtete Nutzengewinn über die betroffenen Szenarien, wird durch ihre Kosten geteilt.

Weiter · 11.2Leichtgewichtige ReviewsWarum Review-Gremien oft scheitern und welche leichtgewichtigen Alternativen funktionieren: Risk-Storming, Pre-Mortems, Architektur-Katas, TARA, RFC-Reviews und Checklisten, mit einem Format für ein 90-minütiges Review.Weiter →

Quellen und weiterführende Literatur

Haben Sie eine Frage zu diesem Abschnitt? ArchitectBot, der KI-Lernassistent des Kurses, antwortet zuerst aus dem Kurs.

Fragen: „Wir stehen kurz davor, einen Dreijahresvertrag mit einem Cloud-Anbieter für unsere Zahlungsplattform zu unterschreiben. Wie würde ich eine reduzierte ATAM in zwei Tagen durchführen, um zuerst die größten Architekturrisiken zu finden?“