Be Software Architecture Wise
Be Wise Apps

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

Abschnitt 4.8 von 4.8 · Mittelstufe · 22 Min. Lesezeit

Architektur für verschiedene Zielgruppen kommunizieren

Videolektion

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

Eine Architektur, die nur ihr Architekt versteht, ist gescheitert, wie gut sie auch sein mag. In dieser letzten Lektion des Kapitels lernen Sie, wie Sie Architektur den verschiedenen Menschen erklären, die ein System bauen, betreiben, finanzieren und prüfen.

Eine Fremdenführerin erklärt dieselbe Kathedrale Schulkindern, Architekten und Pilgern jeweils anders. Andere Fakten, andere Worte, andere Wege durch das Gebäude. Softwarearchitekten müssen dasselbe tun. Gute Kommunikation beginnt also mit zwei Fragen. Wer hört zu? Und was werden diese Menschen danach entscheiden oder anders machen? Dann zeigen Sie ihnen genau das, klar und ehrlich, einschließlich der Nachteile.

Führungskräfte und Sponsoren brauchen eine Seite: die Empfehlung, ihre geschäftlichen Auswirkungen und Kosten, die größten Risiken und die Entscheidung, die Sie von ihnen brauchen. Vermeiden Sie Technologienamen ohne geschäftliche Bedeutung. Entwicklungsteams müssen wissen, wie sie innerhalb der Architektur bauen: Container- und Sequenzdiagramme, Entscheidungsdokumente und warum die Dinge so sind, wie sie sind. Der Betrieb braucht Deployment-Diagramme und die Ausfallszenarien, nicht nur den Happy Path. Das Sicherheitsteam muss sehen, wohin personenbezogene und Zahlungsdaten fließen, und Prüfer brauchen Nachweise: versionierte Dokumente mit Ownern und Prüfdaten.

Die meiste Architekturkommunikation ist die Erklärung einer Abwägung. Hier hat die Architektin fünf Minuten mit dem Führungsteam und beginnt mit der Antwort: ändern, wie Bestellungen fließen, damit ein Ausfall bei Benachrichtigungen oder Disposition Kunden nicht am Bestellen hindern kann, für etwa sechs Wochen Arbeit eines Teams und ein paar hundert Pfund im Monat. Dann: Warum jetzt. Ein Ausfall hat während der Freitagsspitze dreiundzwanzig Minuten lang jede Bestellung blockiert. Das sind rund fünfundfünfzigtausend Bestellungen, die nicht aufgegeben werden konnten. Dann die Optionen, in ihren Begriffen. Option A ist billig, aber ein langsamer Service verlangsamt weiterhin jede Bestellung. Option C geht schnell, macht aber jede künftige Änderung riskanter. Dann, ehrlich, was wir aufgeben: Restaurants sehen neue Bestellungen ein oder zwei Sekunden später, und es gibt einen Service mehr zu betreiben. Und schließlich die nötige Entscheidung. Beachten Sie, dass keine Technologie genannt wird. Der Broker und die Outbox bleiben im Entscheidungsdokument.

Menschen merken sich Geschichten besser als Strukturen. Um ein beliebiges System zu erklären, folgen Sie also einer Anfrage. Hier durchläuft eine Bestellung die Plattform, mit nummerierten Schritten, auf die Sie zeigen können. In den Schritten eins bis drei ruft die Kunden-App das Gateway auf, das den Bestellservice aufruft, der den Zahlungsanbieter aufruft. In Schritt vier wird die Bestellung in die Datenbank geschrieben. Das ist der Moment, das Wesentliche zu sagen: Die Schritte eins bis vier sind synchron, also wartet der Kunde, etwa eine Sekunde lang. Die Schritte fünf bis acht sind asynchron. Das Bestellereignis erreicht Treueprogramm, Disposition und Benachrichtigungen, und nichts hier kann die Bestellung blockieren. Für Entwicklungsteams würden Sie die Geschichte dann noch einmal mit einem Fehler erzählen: Jetzt läuft beim Zahlungsanbieter ein Timeout ab.

Diagramme kommunizieren, bevor jemand ein Wort liest. Links fünf Kästen in vier zufälligen Stilen, Abkürzungen und sich kreuzende Linien ohne Beschriftung, ohne Titel und ohne Legende. Rechts dieselben fünf Elemente: ein Titel, einheitliche Kästen, ein Fluss von links nach rechts, beschriftete Pfeile und eine Legende. Verwenden Sie höchstens zwei oder drei Farben, jede mit einer Bedeutung, und verlassen Sie sich nie allein auf Farbe.

Jedes System profitiert von einer einseitigen Architekturübersicht, die jeder in fünf Minuten lesen kann. Wenn die Hauptideen nicht auf eine Seite passen, sind sie vermutlich auch dem Team nicht klar. Um eine bedeutende Änderung vorzuschlagen, nutzen viele Organisationen ein Designdokument, oft Request for Comments genannt. Sobald es genehmigt ist, werden seine bedeutenden Entscheidungen zu Entscheidungsdokumente. Design Doc zum Denken und Überzeugen, Entscheidungsdokument zum Erinnern. Senden Sie bei einem Architektur-Review das Material mindestens zwei Tage vorher, und sagen Sie, was Sie wollen: eine Genehmigung, eine Liste von Risiken oder eine Wahl. Präsentieren Sie die Treiber vor dem Design, denn Reviewer können ein Design nicht beurteilen, ohne zu wissen, welche Qualitäten es erreichen muss. Und listen Sie Ihre bekannten Risiken auf: Das schafft Vertrauen.

Meinungsverschiedenheiten über Architektur sind normal. Meist bedeuten sie, dass Menschen unterschiedliche Risiken sehen. Erstens: Trennen Sie Interessen von Positionen. „Wir müssen Kafka verwenden“ ist eine Position. „Ich fürchte, wir verlieren bei Deployments Ereignisse“ ist ein Interesse, und es lässt sich oft auf mehrere Arten erfüllen. Vereinbaren Sie die Kriterien, bevor Sie Optionen vergleichen. Die meisten hitzigen Debatten drehen sich eigentlich darum, was zählt. Klären Sie Unsicherheit mit Belegen. Ein zweitägiger Spike oder ein Lasttest entscheidet viele Debatten, die Meetings nicht entscheiden können. Und streben Sie Zustimmung an, nicht Einstimmigkeit. Fragen Sie: Kann jemand damit nicht leben, und warum? Wenn kein Konsens möglich ist, muss jemand entscheiden, und Menschen können offen widersprechen und sich dann voll verpflichten. Halten Sie die abweichende Meinung im Entscheidungsdokument fest.

Damit ist Kapitel 4 abgeschlossen. Wenn Sie so weit sind, machen Sie den freiwilligen Kapiteltest: zwanzig Multiple-Choice-Fragen und zwei schriftliche Antworten, mit einer Bestehensgrenze von achtzig Prozent. Gehen Sie dann weiter zu Kapitel 5, wo wir den Katalog der Architekturstile mit Monolithen und modularen Designs beginnen. Bis gleich.

Was Sie wissen müssen

Kommunikation ist die Aufgabe

Eine Architektur, die nur ihr Architekt versteht, ist gescheitert, wie gut sie auch sein mag. Entscheidungen prägen, was Dutzende Menschen bauen, betreiben, finanzieren und prüfen, und sie funktionieren nur, wenn diese Menschen sie gut genug verstehen, um danach zu handeln und zu bemerken, wenn die Wirklichkeit davon abweicht. Deshalb zählt der iSAQB-Lehrplan die Kommunikation der Architektur zu den Kernaufgaben einer Architektin oder eines Architekten, und deshalb hängt die Architektenrolle aus Kapitel 1 so stark von zwischenmenschlichen Fähigkeiten ab.

Die früheren Abschnitte dieses Kapitels haben das Material geliefert: Sichten, C4- und UML-Diagramme, ADRs, eine arc42-Struktur und eine Pipeline, die alles aktuell hält. In diesem Abschnitt geht es darum, dieses Material mit Menschen zu nutzen. Die Kernfähigkeit ist überall dieselbe: Entscheiden Sie, wer die Zielgruppe ist, was sie tun muss, nachdem sie Sie gehört hat, und geben Sie ihr genau das, was dafür nötig ist, in einer Form, die sie aufnehmen kann. Gregor Hohpes Bild vom Architect Elevator (The Software Architect Elevator, 2020) fasst die Bandbreite: Ein Architekt fährt zwischen der Vorstandsetage, wo Strategie in geschäftlichen Begriffen festgelegt wird, und dem Maschinenraum, wo Systeme gebaut werden, und muss auf jeder Etage verstanden werden.

Auf die Zielgruppe zuschneiden

Jede Zielgruppe hat ihre eigenen Anliegen, genau im Sinne von Stakeholder und Anliegen, und ihr eigenes Vokabular und ihre eigene Aufmerksamkeitsspanne. Die Tabelle ist ein Ausgangspunkt; die eigentliche Kunst besteht darin, vor jeder Vorbereitung zu fragen: Was wird diese Person nach diesem Gespräch entscheiden oder anders machen?

Was verschiedene Zielgruppen brauchen

ZielgruppeWas ihnen wichtig istWas zeigenWas vermeiden
Führungskräfte und SponsorenKosten, Risiko, Time-to-Market, strategische Optionen, was sie entscheiden müssenEine Seite: die Empfehlung, die geschäftlichen Auswirkungen, die Kosten, die größten Risiken und die Entscheidung, die Sie von ihnen brauchen; höchstens ein SystemkontextdiagrammTechnologienamen ohne geschäftliche Bedeutung; Komponentendiagramme; ein Rundgang durch die Optionen vor der Antwort
ProduktmanagementWas möglich oder schwieriger wird, Liefertermine, für Nutzer sichtbares VerhaltenFähigkeiten und Einschränkungen in Produktbegriffen; wie die Architektur die Roadmap beeinflusst; eine Laufzeitgeschichte einer User JourneyInterne Struktur um ihrer selbst willen
EntwicklungsteamsWie man innerhalb der Architektur baut: Grenzen, Schnittstellen, Konventionen, warum die Dinge so sind, wie sie sindC4-Container- und Komponentendiagramme, Sequenzdiagramme, ADRs, Codebeispiele, das EntscheidungsprotokollVage Prinzipien ohne Beispiele; Diagramme, die nicht zum Code passen
Betrieb und SREDeployment, Ausfallarten, Monitoring, Kapazität, WiederherstellungDeployment-Diagramme, Ausfallszenarien zur Laufzeit, SLOs, Runbooks, AbhängigkeitskartenAbläufe nur für den Happy Path
SicherheitVertrauensgrenzen, Datenflüsse, Identitäten, AngriffsflächeDatenflussdiagramme mit markierten Vertrauensgrenzen, Authentifizierungs- und Autorisierungsabläufe, BedrohungsmodellDiagramme, die verbergen, wohin personenbezogene oder Zahlungsdaten gehen
Prüfer und AufsichtsbehördenNachweise, dass Kontrollen existieren und eingehalten werden; NachverfolgbarkeitVersionierte Dokumente mit Ownern und Prüfdaten, ADRs, Zuordnung von Anforderungen zu KontrollenInformelle Skizzen ohne Datum, Owner oder Version

Zwei Gewohnheiten helfen bei jeder Zielgruppe. Beginnen Sie mit der Antwort. Beschäftigte Lesende sollten die Schlussfolgerung im ersten Satz erfahren, dann die stützenden Gründe, dann die Details; das ist die Struktur, die Barbara Minto Beratern als Pyramid Principle beigebracht hat, und es ist dieselbe Idee wie Fowlers umgekehrte Pyramide für ADRs. Verwenden Sie ihre Worte. Für eine Finanzdirektorin ist Eventual Consistency Rauschen; Das Restaurant sieht eine neue Bestellung bis zu zwei Sekunden nach dem Kunden, und nichts geht verloren ist eine Tatsache, die sie abwägen kann.

Abwägungen erklären

Die meiste Architekturkommunikation ist im Kern die Erklärung einer Abwägung. Laien misstrauen Empfehlungen, die keinen Nachteil zu haben scheinen, und das zu Recht. Eine klare, konsequent verwendete Struktur macht Abwägungen leicht nachvollziehbar: die Optionen (einschließlich Nichtstun), die Kriterien, die für diese Zielgruppe zählen, wie jede Option abschneidet, die Empfehlung und ihre Konsequenzen, einschließlich dessen, was Sie aufgeben. Das ist die Anatomie einer Entscheidung aus Kapitel 1 und der Inhalt eines ADR, umgeformt für Zuhörende.

Ausgearbeitetes Beispiel

Ausgearbeitetes Beispiel: eine Abwägung gegenüber dem Führungsteam erklären

Die Essenslieferplattform hatte zwei Ausfälle an Freitagabenden, verursacht durch einen langsamen Benachrichtigungsservice. Die Architektin hat in der Führungsrunde fünf Minuten, um die Zustimmung zu ADR-0012 (asynchrone Bestellereignisse) zu bekommen.

Zuerst die Antwort„Ich empfehle, dass wir ändern, wie Bestellungen zwischen unseren Systemen fließen, damit ein Ausfall bei den Benachrichtigungen oder der Kurierdisposition Kunden nicht mehr am Bestellen hindern kann. Das kostet etwa sechs Teamwochen und ein paar hundert Pfund im Monat.“
Warum jetzt„Am Freitag, dem 21. August, hat ein Ausfall der Benachrichtigungen 23 Minuten lang während der Freitagsspitze jede Bestellung blockiert. Bei etwa 40 Bestellungen pro Sekunde sind das rund 55.000 Bestellungen, die nicht aufgegeben werden konnten, gefolgt von Erstattungen und Beschwerden.“
Optionen in ihren Begriffen„Wir könnten (A) das jetzige Design behalten und Sicherheitsgrenzen ergänzen, was billig ist, aber weiterhin zulässt, dass ein langsamer Service jede Bestellung verlangsamt; (B) die empfohlene Änderung umsetzen; oder (C) andere Systeme unsere Bestelldaten direkt lesen lassen, was schnell geht, aber jede künftige Änderung riskanter macht.“
Was wir aufgeben„Restaurants sehen neue Bestellungen ein oder zwei Sekunden nach der Bestätigung für den Kunden, und wir müssen einen weiteren Managed Service betreiben. Wir halten beides für vertretbar; der Betrieb stimmt zu.“
Die nötige Entscheidung„Ich brauche die Zustimmung, in diesem Quartal sechs Teamwochen aufzuwenden, was das Treueprogramm-Feature um zwei Wochen verzögert.“

Keine Technologie wird genannt: „Message Broker“ und „Transactional Outbox“ bleiben im ADR. Die Bestellzahl (40 Bestellungen pro Sekunde über 23 Minuten) wird vor dem Meeting mit echten Daten abgeglichen.

Die Kosten der Empfehlung und die Alternativen werden klar benannt, sodass die Führungskräfte in der Sache widersprechen können statt aus Misstrauen.

Die einseitige Architekturübersicht

Jedes System profitiert von einer einseitigen Architekturübersicht: einer einzigen Seite, die neue Teammitglieder, Führungskräfte oder Reviewer aus einem anderen Team in fünf Minuten lesen können. Sie ersetzt nicht die vollständige Dokumentation, sondern ist ihre Eingangstür. Eine nützliche Struktur ist: was das System tut und für wen (zwei Sätze); die drei wichtigsten Qualitätsziele; ein Systemkontextdiagramm; ein Containerdiagramm oder eine Liste der wichtigsten Bausteine; die etwa fünf Entscheidungen, die alles prägen (je eine Zeile, mit Link zu den ADRs); die größten Risiken; und wo man mehr findet. Die arc42-lite-Seite in arc42 und Vorlagen ist eine solche Übersicht.

Die Disziplin, die Architektur auf eine Seite zu bringen, ist schon für sich wertvoll. Wenn sich die Hauptideen nicht auf einer Seite darstellen lassen, sind sie vermutlich auch dem Team nicht klar.

Storytelling: einer Anfrage folgen

Menschen merken sich Geschichten besser als Strukturen. Eine wirkungsvolle Technik, um ein beliebiges System zu erklären, ist es, einer Anfrage zu folgen: Wählen Sie ein einzelnes, konkretes, wichtiges Ereignis, etwa einen Kunden, der eine Bestellung aufgibt, und gehen Sie Schritt für Schritt durch, was damit quer durch die Architektur geschieht. Ein statisches Kastendiagramm zeigt, was existiert; die Geschichte zeigt, warum es existiert und wie die Teile zusammenarbeiten. Sie bringt auch die interessanten Momente ganz natürlich zum Vorschein: wo der Kunde wartet, wo Daten eine Vertrauensgrenze überschreiten, was passiert, wenn der Zahlungsanbieter langsam ist.

Wählen Sie die Geschichte passend zur Zielgruppe. Für Entwicklungsteams erst den Happy Path, dann einen Fehlerfall (jetzt läuft beim Zahlungsanbieter ein Timeout ab). Für den Betrieb den Ausfall und die Wiederherstellung. Für Führungskräfte das Kundenerlebnis mit nur den geschäftlich relevanten Momenten. Nummerieren Sie die Schritte im Diagramm, damit Sie darauf zeigen können, und lassen Sie dasselbe Diagramm auf dem Bildschirm, während Sie sprechen, statt zwischen Folien hin- und herzuspringen.

Einer Bestellung durch die Plattform folgen

Einer Bestellung durch die Essenslieferplattform folgen: synchrone Schritte von der Kunden-App über das Gateway und den Bestellservice zum Zahlungsanbieter und zur Datenbank, dann asynchrone Ereignisse an die Restaurant-, Dispositions- und BenachrichtigungsservicesEine Bestellung: vom Tippen zum KurierKunden-AppKotlin, SwiftAPI-GatewayManaged GatewayBestellungJava-ServiceZahlungs-anbieter (extern)123Bestell-DBPostgreSQL4Bestell-EventsKafka-Topic5Treueprogrammgibt PunkteDispoweist Kurier zuBenachr.Restaurant, Kunde678Was sagen1-4: synchron;der Kunde wartetetwa 1 s5-8: asynchron;nichts blockiertdie BestellungDurchgezogene Pfeile: synchrone Aufrufe. Gestrichelte Pfeile: asynchrone Events. Zahlen: Ablauf der Geschichte.
Ein nummeriertes Story-Diagramm: Die Schritte 1 bis 4 geschehen, während der Kunde wartet; die Schritte 5 bis 8 laufen asynchron und können die Bestellung nicht blockieren.

Gut am Whiteboard arbeiten und skizzieren

Viel Architekturkommunikation geschieht live, an einem Whiteboard oder auf einer gemeinsamen Online-Zeichenfläche, und ein paar Gewohnheiten machen Skizzen weit nützlicher. Sagen Sie, was Sie zeichnen, bevor Sie es zeichnen (Das ist die Container-Ebene: Dinge, die wir getrennt deployen), damit das Publikum die Abstraktionsebene kennt. Beginnen Sie mit dem Kontext: die Nutzer und externen Systeme am Rand, dann das Innere. Beschriften Sie jeden Kasten und jede Linie beim Zeichnen, einschließlich der Richtung und dessen, was fließt; ein unbeschrifteter Pfeil wird von drei Personen auf drei verschiedene Arten gelesen. Zeichnen Sie eine kleine Legende in eine Ecke, wenn Sie mehr als eine Art von Linie oder Kasten verwenden. Lassen Sie Platz, denn die besten Ideen kommen mitten in der Diskussion und brauchen einen Ort.

Skizzen sind Denkwerkzeuge und dürfen weggeworfen werden, die Schlussfolgerungen aber nicht. Fotografieren Sie das Whiteboard und machen Sie innerhalb eines Tages aus allem, was wichtig sein wird, ein richtiges Diagramm, ein ADR oder eine Änderung an der Dokumentation. Simon Brown, der das C4-Modell geschaffen hat, beobachtete, dass die Whiteboard-Diagramme vieler Teams gerade deshalb mehrdeutige Kästen und Linien sind, weil ihnen ein vereinbarter Satz von Abstraktionen fehlt; die C4-Ebenen am Whiteboard zu verwenden ist einer der einfachsten Wege, das zu beheben.

Designdokumente und RFCs

Viele Entwicklering-Organisationen verwenden ein schriftliches Designdokument, oft RFC (Request for Comments) genannt, um eine bedeutende Änderung vorzuschlagen, bevor sie gebaut wird. Der Name greift die RFC-Reihe des Internets auf, die im April 1969 mit RFC 1 von Steve Crocker begann. Die Autorin oder der Autor beschreibt das Problem, den Kontext, die Ziele und Nicht-Ziele, das vorgeschlagene Design, die erwogenen Alternativen und die übergreifenden Anliegen wie Sicherheit, Datenschutz und Observability; das Dokument wird an die Betroffenen verteilt, die schriftlich kommentieren; und es wird genehmigt oder überarbeitet. Malte Ubls viel gelesene Beschreibung von Design Docs bei Google (2020) nennt genau diese Abschnitte und schlägt zehn bis zwanzig Seiten für große Projekte und ein bis drei Seiten für kleine Mini Design Docs vor. Gergely Orosz beschrieb, wie Uber von seinen frühen Jahren an einen RFC-Prozess nutzte, um Wissen zu verbreiten und Probleme früh zu erkennen (2018).

Amazon treibt das Schreiben weiter: Sein Aktionärsbrief von 2017 erklärt, dass das Unternehmen in Meetings keine Folienpräsentationen verwendet, sondern narrativ strukturierte sechsseitige Memos, die die Teilnehmenden zu Beginn still lesen. Der gemeinsame Nutzen all dieser Praktiken ist, dass Schreiben klares Denken erzwingt, schriftliche Kommentare auch ruhigeren und entfernt arbeitenden Kollegen eine Stimme geben und das Dokument zu einer Aufzeichnung wird. Auch die Risiken sind gemeinsam: lange Dokumente, die niemand zu Ende liest, Review-Prozesse, die zu bürokratischen Hürden werden, und Design Docs, die nach der Umsetzung nie aktualisiert werden.

Design Docs und ADRs ergänzen sich. Ein Design Doc untersucht ein Problem und schlägt ein ganzes Design vor, das oft mehrere Entscheidungen umfasst; sobald es genehmigt ist, werden die bedeutenden Entscheidungen darin als ADRs festgehalten, die kürzer, dauerhaft und indexiert sind. Eine vernünftige Regel lautet: Design Doc zum Denken und Überzeugen, ADR zum Erinnern.

Bei einem Architektur-Review präsentieren

Ein Architektur-Review ist ein Meeting, in dem andere erfahrene Personen ein Design untersuchen, um Risiken zu finden, bevor sie teuer werden. Strukturierte Methoden wie ATAM und leichtgewichtigere Reviews werden in Kapitel 11: Leichtgewichtige Reviews behandelt; hier geht es darum, wie man gut präsentiert. Senden Sie das Material mindestens zwei Tage vorher: die einseitige Übersicht, die wichtigsten Diagramme, die relevanten ADRs und die Qualitätsszenarien. Sagen Sie zu Beginn, was Sie vom Review wollen: eine Genehmigung, eine Liste von Risiken oder eine Wahl zwischen zwei Optionen. Präsentieren Sie die Treiber vor dem Design, denn ein Reviewer kann ein Design nicht beurteilen, ohne zu wissen, welche Qualitäten es erreichen muss. Gehen Sie ein oder zwei Szenarien mit der Technik „einer Anfrage folgen“ durch, einschließlich eines Fehlerfalls. Zeigen Sie die Abwägungen, die Sie getroffen haben, und die Risiken, die Sie kennen; ein Reviewer, der ein Risiko findet, das Sie bereits aufgelistet haben, vertraut Ihnen mehr, nicht weniger. Halten Sie jeden angesprochenen Punkt mit einer verantwortlichen Person fest und senden Sie die Liste danach herum.

Regeln für die visuelle Gestaltung von Diagrammen

Diagramme kommunizieren, bevor jemand ein Wort liest, deshalb zählt ihre visuelle Gestaltung. Die folgenden Regeln stammen aus den C4-Notationsempfehlungen in Das C4-Modell und aus allgemeinem Informationsdesign. Das Vorher-nachher-Diagramm wendet sie auf dieselben fünf Elemente an.

Dasselbe Diagramm, vorher und nachher

Dieselben fünf Elemente schlecht und gut gezeichnet: links zufällige Farben, Abkürzungen und sich kreuzende unbeschriftete Linien; rechts ein Titel, einheitliche Kästen, Fluss von links nach rechts, beschriftete Pfeile und eine LegendeVorherNachherAppBestSvcDBMQDispohne Titel, Legende, LinientextBestellvorgang: ContainerKunden-AppBestell-serviceDB fürBestellungTopicBestelleventsDispo-serviceHTTPSSQLpubliziertkonsumiertsynchroner Aufrufasync. EventTitel, gleiche Formen, Labels, Legende
Links tragen Farben und Abkürzungen keine Bedeutung, und Linien kreuzen sich unbeschriftet; rechts ein Titel, einheitliche Formen, ein Fluss von links nach rechts, beschriftete Pfeile und eine Legende.

Regeln für klare Architekturdiagramme

  1. Geben Sie jedem Diagramm einen TitelNennen Sie Typ und Umfang, etwa Container: Essenslieferplattform, damit Lesende die Abstraktionsebene kennen.
  2. Verwenden Sie eine Notation konsequentDieselbe Form für dieselbe Art von Ding in allen Diagrammen; mischen Sie C4- und UML-Symbole nicht in einem Diagramm, ohne es zu sagen.
  3. Fügen Sie eine Legende hinzuErklären Sie jede Form, Farbe, Linienart und Pfeilspitze, die Bedeutung trägt. Wenn Sie sie nicht erklären können, entfernen Sie sie.
  4. Begrenzen Sie Farben und geben Sie ihnen BedeutungZwei oder drei Farben, jede mit einer Bedeutung (extern, neu, gefährdet). Verlassen Sie sich nie allein auf Farbe: Diagramme werden schwarz-weiß gedruckt, und viele Lesende haben eine Farbsehschwäche.
  5. Fluss von links nach rechts oder von oben nach untenFolgen Sie der Leserichtung Ihres Publikums, mit Anfragen in eine Richtung, damit das Auge der Geschichte folgt.
  6. Beschriften Sie jedes Element und jeden PfeilNamen ohne unerklärte Abkürzungen; Pfeile in eine Richtung, mit dem, was fließt, und zwischen Containern mit dem Protokoll.
  7. Vermeiden Sie sich kreuzende Linien, wo möglichOrdnen Sie zuerst die Kästen neu an; bleiben Kreuzungen, teilen Sie das Diagramm. Ein Diagramm mit vielen Kreuzungen will meist zu viel zeigen.
  8. Bleiben Sie bei einem BildschirmHöchstens etwa ein oder zwei Dutzend Elemente. Größere Bilder gehören auf eine tiefere Ebene oder in mehrere Diagramme.

Mit Meinungsverschiedenheiten umgehen und Konsens aufbauen

Meinungsverschiedenheiten über Architektur sind normal und gesund: Meist bedeuten sie, dass Menschen unterschiedliche Risiken sehen. Ziel ist nicht zu gewinnen, sondern eine Entscheidung zu erreichen, die diejenigen, die damit leben müssen, verstehen und mittragen. Mehrere Praktiken helfen.

Trennen Sie Interessen von Positionen. Wir müssen Kafka verwenden ist eine Position; Ich mache mir Sorgen, dass wir bei Deployments Ereignisse verlieren ist ein Interesse, und Interessen lassen sich oft auf mehrere Arten erfüllen. Vereinbaren Sie die Kriterien, bevor Sie Optionen vergleichen, wie in einer gewichteten Entscheidungsmatrix; die meisten hitzigen Debatten sind eigentlich Uneinigkeit darüber, was zählt, und sie kühlen ab, sobald das ausgesprochen ist. Klären Sie Unsicherheit mit Belegen: Ein zweitägiger Spike oder ein Lasttest entscheidet viele Debatten, die Meetings nicht entscheiden können. Schreiben Sie es auf: Ein vorgeschlagenes ADR oder Design Doc lässt alle in ihrem eigenen Tempo kommentieren und gibt ruhigeren Kollegen eine Stimme.

Streben Sie Zustimmung statt Einstimmigkeit an. RFC 7282 der IETF (Pete Resnick, 2014) beschreibt Rough Consensus: Eine Entscheidung ist erreicht, wenn jeder Einwand behandelt wurde, also erwogen und beantwortet, wenn auch nicht unbedingt berücksichtigt. Die Frage Kann jemand damit nicht leben, und warum? bringt blockierende Punkte schneller ans Licht als die Frage, ob alle zustimmen. Ist Konsens nicht möglich, muss jemand entscheiden, und es sollte vorab klar sein, wer. Jeff Bezos’ Aktionärsbrief von 2016 machte Disagree and Commit populär: Menschen äußern ihre abweichende Meinung offen und stehen dann voll hinter der Entscheidung, sobald sie gefallen ist. Halten Sie die abweichende Meinung und die Gründe im ADR fest; behalten die Abweichenden recht, zeigt der Record, was zu überdenken ist und warum.

Zwei Fehlmuster verdienen eine Warnung. Die Architektin, die jede Diskussion kraft ihres Dienstalters gewinnt, hört nichts mehr von Problemen. Das Team, das ohne Einstimmigkeit nicht entscheiden kann, lässt wichtige Entscheidungen durch Untätigkeit fallen, das Gegenteil des Last Responsible Moment.

Checkliste: eine Architekturpräsentation

Verwenden Sie sie vor jeder Präsentation von Architektur, vom fünfminütigen Update für die Führung bis zum formalen Review.

  • Zielgruppe und Ergebnis benanntSie können in einem Satz sagen, wer im Raum sein wird und was diese Personen danach entscheiden oder tun sollen.
  • Zuerst die AntwortDie Empfehlung oder Kernbotschaft steht auf der ersten Folie oder im ersten Absatz.
  • Treiber vor DesignDie Geschäftsziele, Qualitätsziele und Randbedingungen werden vor der Lösung gezeigt.
  • Abstraktionsebene passt zur ZielgruppeKontextebene für Führungskräfte, Container- und Komponentenebene für Engineers; nicht mehr als zwei Ebenen in einer Sitzung.
  • Eine Geschichte von Anfang bis Ende erzähltEin Durchgang nach dem Prinzip „einer Anfrage folgen“, für technisches Publikum mit einem Fehlerfall.
  • Abwägungen und Risiken ehrlich gezeigtOptionen, was jede kostet und was Sie aufgeben; bekannte Risiken aufgelistet, bevor jemand anderes sie findet.
  • Jedes Diagramm hat Titel, Legende und BeschriftungenKonsistente Notation, wenige Farben mit Bedeutung, lesbar aus der letzten Reihe.
  • Material vorab verschicktFür Reviews und Entscheidungen gehen die Übersicht und die ADRs mindestens zwei Tage vorher hinaus, sodass das Meeting der Diskussion dient.
  • Das Anliegen ist ausdrücklichGenehmigung, Risiken, eine Wahl zwischen Optionen oder einfach Kenntnisnahme; sagen Sie, was davon, und bis wann.
  • Nachbereitung festgehaltenFragen, Einwände und Aufgaben mit Verantwortlichen festgehalten; Entscheidungen in ADRs überführt; Dokumentation aktualisiert.

Prüfen Sie Ihr Verständnis

Welche Frage sollten Sie beantworten, bevor Sie eine Architekturerklärung vorbereiten?

Wer die Zielgruppe ist und was sie danach entscheiden oder anders machen soll; Inhalt, Abstraktionsebene und Vokabular ergeben sich daraus.

Warum eine Geschichte nach dem Prinzip „einer Anfrage folgen“ erzählen, statt nur ein Kastendiagramm zu zeigen?

Ein Kastendiagramm zeigt, was existiert; die Geschichte zeigt, wie und warum die Teile zusammenarbeiten, und bringt Wartezeiten, Vertrauensgrenzen und Fehlerstellen ans Licht, die ein statisches Bild verbirgt.

Wie unterscheiden sich ein Designdokument und ein ADR in ihrem Zweck?

Ein Designdokument untersucht ein Problem und schlägt vor dem Bau ein ganzes Design zur Kommentierung vor; ein ADR ist ein kurzer, dauerhafter Record einer Entscheidung. Genehmigte Design Docs bringen typischerweise mehrere ADRs hervor.

Was bedeutet Rough Consensus in RFC 7282?

Jeder Einwand wurde erwogen und beantwortet, wenn auch nicht unbedingt berücksichtigt; es ist weder Einstimmigkeit noch eine Mehrheitsabstimmung.

Ende von Kapitel 4Den Kapiteltest ablegenOptional: 20 Multiple-Choice-Fragen und 2 schriftliche Antworten, in der App.Zum Test →

Quellen und weiterführende Literatur

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

Fragen: „Ich habe zehn Minuten mit unserem CFO, um eine sechsmonatige Plattformmigration zu begründen. Wie sollte ich das Gespräch strukturieren, und was sollte ich weglassen?“