Read in English · Leer en español · Lire en français
Abschnitt 1.2 von 1.8 · Einsteiger · 17 Min. Lesezeit
Architektur, Design und Code: Bedeutsamkeit, Reichweite und Ebenen
Videolektion
5 Min. · auf Englisch gesprochen, mit UntertitelnNur anhören (Audio)
Transkript lesen
Wann ist eine Entscheidung Architektur, und wann ist sie nur Design? Diese Lektion gibt Ihnen praktische Tests und zeigt, warum die Antwort nicht immer dort liegt, wo Sie sie erwarten.
Denken Sie an die Planung eines Hauses. Manche Entscheidungen legen alles andere fest: wie viele Stockwerke, wo die Treppe verläuft, wo die tragenden Wände stehen. Andere lassen sich an einem Wochenende ändern: Farbe, Regale, Lampen. Beides ist Design. Aber nur die erste Art ist Architektur, weil eine spätere Änderung bedeutet, das Haus umzubauen. Bei Software ist die Aufteilung eines Systems in Teile Architektur. Wie eine Funktion innerhalb eines Teils geschrieben wird, ist Design.
Grady Booch hat es treffend gesagt: Jede Architektur ist Design, aber nicht jedes Design ist Architektur. Es gibt keine saubere Mauer dazwischen, nur ein Kontinuum von Entscheidungen, geordnet nach Bedeutsamkeit. Die nützliche Frage ist also nicht, ob etwas abstrakt gesehen Architektur ist. Sondern wie bedeutsam diese Entscheidung hier ist und wie viel Sorgfalt sie verdient.
Was macht eine Entscheidung also bedeutsam? Erstens ist sie schwer oder teuer rückgängig zu machen. Fragen Sie: Wenn sich das in einem Jahr als falsch erweist, was kostet dann die Änderung? Zweitens eine große Reichweite. Sie berührt viele Komponenten, Teams oder Systeme, wie das Format der Kundenkennungen in allen Services. Drittens entscheidet sie, ob Sie ein zentrales Ziel bei Performance, Verfügbarkeit, Sicherheit oder Kosten erreichen. Viertens setzt sie anderen eine Randbedingung und schränkt ein, was andere Teams wählen dürfen. Und fünftens beinhaltet sie bedeutsame Abwägungen oder echte Neuartigkeit und Risiko, etwa eine Datenbank, die in der Organisation noch nie jemand in Produktion betrieben hat.
Dieses Diagramm ordnet eine Entscheidung auf dem Kontinuum ein. Das linke Ende ist eher Architektur, das rechte eher Design und Code. Die erste Dimension sind die Umkehrkosten: Monate Arbeit für viele Teams am einen Ende, Minuten für eine Person am anderen. Die zweite ist die Reichweite: das ganze System oder die ganze Organisation gegenüber einer Funktion oder Klasse. Die dritte ist die Wirkung auf zentrale Qualitätsmerkmale: Bestimmt die Entscheidung eines, oder ist ihre Wirkung lokal oder null? Die Punkte ordnen eine Beispielentscheidung, die Wahl eines Nachrichtenformats, in jeder Zeile ein. Eine Entscheidung kann auf jeder Dimension anders abschneiden, deshalb betrachten Sie alle drei.
So sortiert die technische Leitung eines Fahrdienst-Start-ups fünf Entscheidungen. Fahrtpositionen in einer Zeitreihendatenbank zu speichern, ist teuer rückgängig zu machen und berührt Fahrten, Abrechnung und Analytics. Das ist Architektur, also wird es aufgeschrieben und geprüft. Eine HTTP-Client-Bibliothek im Preisservice zu wählen, ist billig umkehrbar und betrifft einen Service. Das ist Design, und das Preisteam entscheidet. Fahrpreise auf dem Server zu berechnen, nie auf dem Smartphone, betrifft die Apps und das Backend und schützt die Integrität der Preise. Das ist Architektur: ein maßgebendes Prinzip. Geld überall als ganze Pence oder Cent darzustellen, wirkt wie ein Codierdetail. Aber sobald Daten und Partnersysteme davon abhängen, ist es sehr teuer zu ändern. Architektur, obwohl es eine niedrige Ebene betrifft. Und die Farben für den Dunkelmodus in der Fahrer-App? Trivial rückgängig zu machen. Design. Beachten Sie, dass zwei der drei Architekturentscheidungen überhaupt nichts mit Kästchen und Pfeilen zu tun haben.
Das Wort Architektur wird auch auf verschiedenen Ebenen der Reichweite verwendet, und Berufsbezeichnungen folgen ihnen. Unternehmensarchitektur umfasst eine ganze Organisation: ihre Fähigkeiten, Informationen, Anwendungen und Technologien. Das bekannteste Framework dafür ist TOGAF von The Open Group. Lösungsarchitektur befasst sich mit einem Geschäftsproblem über mehrere Systeme, etwa ein Krankenhaus, das eine Onlinebuchung einführt, die an seine bestehenden Systeme angebunden werden muss. Software- oder Anwendungsarchitektur, das Hauptthema dieses Kurses, betrifft die Strukturen und Qualitäten eines Systems. Darunter folgen der Feinentwurf innerhalb einer Komponente und dann der Code selbst. Jede Ebene beschränkt die darunterliegende. Rechts ziehen sich drei Fachgebiete durch jede Ebene: Datenarchitektur, Sicherheitsarchitektur und Infrastrukturarchitektur.
Warum ist das wichtig? Weil die Abstraktionsebene allein ein schlechter Test ist. Formate für Kennungen, Konventionen für Geld und Zeit sowie API-Verträge sind oft Architektur, auch wenn sie nach niedriger Ebene aussehen. Entscheidungen sollten auf der niedrigsten Ebene getroffen werden, die genug Kontext und Verantwortung hat. Architekten, die Klassenstrukturen festlegen, werden zum Engpass; Teams, die allein systemweite Entscheidungen treffen, erzeugen teure Uneinheitlichkeit. Und gute Teams verkleinern die Menge der Architekturentscheidungen. Einen Anbieter hinter einer Schnittstelle zu verbergen oder eine Datenbank zur Privatsache eines Service zu machen, macht eine Entscheidung billig umkehrbar und verschiebt sie in Richtung Design.
Das ist die Grenze zwischen Architektur und Design. Der vollständige Abschnitt enthält weitere Beispielentscheidungen und zeigt, wer jede Art meist trifft. Als Nächstes sehen wir uns in Abschnitt eins Punkt drei an, warum Architektur so wichtig ist. Bis gleich.
Was Sie wissen müssen
- Architektur und Design bilden ein Kontinuum: Jede Architektur ist Design, aber nur die bedeutsamen Designentscheidungen sind Architektur.
- Eine Entscheidung ist architekturrelevant, wenn sie schwer oder teuer rückgängig zu machen ist, eine große Reichweite hat, ein zentrales Qualitätsmerkmal bestimmt, andere einschränkt oder wichtige Abwägungen beinhaltet.
- Die Abstraktionsebene allein ist ein schlechter Test: Konventionen auf niedriger Ebene wie Formate für Kennungen oder Geldbeträge können architekturrelevant sein, und manche Kästen auf hoher Ebene sind belanglos.
- Strategische Entscheidungen geben vielen Menschen eine langfristige Richtung vor; taktische Entscheidungen lösen abgegrenzte, unmittelbare Probleme, doch wiederholte taktische Entscheidungen können architekturrelevant werden.
- Unternehmensarchitektur umfasst eine ganze Organisation (TOGAF ist das bekannteste Framework), Lösungsarchitektur ein Geschäftsproblem über mehrere Systeme hinweg und Softwarearchitektur ein System; Daten-, Sicherheits- und Infrastrukturarchitektur ziehen sich durch alle Ebenen.
- Entscheidungen sollten auf der niedrigsten Ebene getroffen werden, die genug Kontext und Verantwortung hat, mit breiterer Abstimmung bei Entscheidungen, die viele Teams betreffen.
Ein Kontinuum, keine Mauer
Wenn Architektur die Menge der bedeutsamen Entscheidungen und Strukturen ist (Abschnitt 1.1), dann ist Design alles Übrige: die vielen kleineren Entscheidungen darüber, wie jeder Teil im Inneren funktioniert. Die Schwierigkeit ist, dass es keine saubere Grenze zwischen beidem gibt. Eine Essenslieferplattform in ein Bestellsystem und ein Kuriersystem aufzuteilen, ist eindeutig eine Architekturentscheidung. Eine Variable zu benennen, ist es eindeutig nicht. Zwischen diesen Extremen liegt ein breites Mittelfeld von Entscheidungen (das Fehlerformat einer API, eine Caching-Regel, die Aufteilung eines Moduls in Pakete), deren Status vom Kontext abhängt.
Grady Booch hat es treffend formuliert: Jede Architektur ist Design, aber nicht jedes Design ist Architektur. Architektur und Feinentwurf sind Punkte auf einem Kontinuum von Designentscheidungen, geordnet danach, wie bedeutsam sie sind. Deshalb lautet die nützlichste Frage nicht abstrakt „Ist das Architektur oder Design?“, sondern „Wie bedeutsam ist diese Entscheidung hier, und wie viel Sorgfalt verdient sie?“.
Eine zweite, beliebte Art, die Grenze zu ziehen, ist die Abstraktionsebene: Architektur ist die Sicht von oben („Kästchen und Pfeile“), Design die Sicht im Detail („Klassen und Methoden“). Das ist eine vernünftige erste Näherung, scheitert aber in beide Richtungen. Ein Detail auf niedriger Ebene kann architekturrelevant sein: Das Format einer Kennung, die zwanzig Services gemeinsam nutzen, oder die Wahl einer Zeitzonenkonvention für gespeicherte Datumsangaben kann Monate kosten, wenn man es ändern will. Und ein Kasten auf hoher Ebene kann belanglos sein: Ob ein internes Admin-Tool ein eigener Service ist, spielt womöglich gar keine Rolle.
Was eine Entscheidung architekturrelevant macht
Eine Entscheidung ist architekturrelevant, wenn sie eines oder mehrere der folgenden Merkmale aufweist. Das sind keine formalen Regeln aus einem einzelnen Standard; sie fassen zusammen, was das SEI, Martin Fowler, Mark Richards und Neal Ford und andere mit unterschiedlichen Worten sagen.
Anzeichen dafür, dass eine Entscheidung architekturrelevant ist
| Merkmal | Zu stellende Frage | Beispiel |
|---|---|---|
| Schwer oder teuer rückgängig zu machen | Wenn sich das in einem Jahr als falsch erweist, was kostet dann die Änderung? | Ein ereignisbasiertes Datenmodell (Event-Sourcing) wählen, statt den aktuellen Zustand zu speichern |
| Große Reichweite | Wie viele Komponenten, Teams oder Systeme berührt es? | Das Format der Kundenkennungen festlegen, die in allen Services verwendet werden |
| Bestimmt ein zentrales Qualitätsmerkmal | Entscheidet es darüber, ob wir ein Ziel bei Performance, Verfügbarkeit, Sicherheit oder Kosten erreichen? | Einen Cache vor den Produktkatalog setzen, um ein Antwortzeitziel von 200 ms zu erreichen |
| Setzt anderen eine Randbedingung | Schränkt es ein, was andere Teams wählen dürfen? | Vorschreiben, dass alle Services Events an einen gemeinsamen Broker veröffentlichen |
| Beinhaltet bedeutsame Abwägungen | Geben wir etwas Wichtiges auf, um etwas anderes zu bekommen? | Eventual Consistency zwischen Bestellungen und Lagerbestand in Kauf nehmen, damit der Checkout verfügbar bleibt |
| Hohe Neuartigkeit oder hohes Risiko | Hat das hier schon jemand gemacht? Was, wenn uns die Technologie im Stich lässt? | Eine Datenbank einführen, die die Organisation noch nie in Produktion betrieben hat |
Mark Richards und Neal Ford beschreiben in Fundamentals of Software Architecture das Spektrum zwischen Architektur und Design ähnlich: Eine Entscheidung liegt umso näher an der Architektur, je strategischer sie ist (langfristig, viele Beteiligte), je mehr Aufwand eine Änderung erfordern würde und je bedeutsamer ihre Abwägungen sind. Martin Fowler bietet eine kompakte Fassung: Architektur ist das, was schwer zu ändern ist, und daraus folgt auch, dass es eines der Ziele eines Architekten ist, mehr Dinge leicht änderbar zu machen. Eine Entscheidung billig umkehrbar zu machen, etwa indem man sie hinter eine Schnittstelle legt, verschiebt sie faktisch von der Architektur hin zum Design. Diese Idee, die Umkehrbarkeit, wird in Abschnitt 1.6 weiter vertieft.
Eine Entscheidung auf dem Kontinuum einordnen
Strategische und taktische Entscheidungen
Eine verwandte Unterscheidung ist die zwischen strategischen und taktischen Entscheidungen. Strategische Entscheidungen geben für lange Zeit und für viele Menschen die Richtung vor: einen Cloud-Anbieter einführen, zwischen einem Monolithen und verteilten Services wählen, festlegen, dass Kundendaten in einem einzigen System geführt werden. Sie brauchen meist den Input mehrerer Stakeholder, und es lohnt sich, sie mit ihren Gründen aufzuschreiben. Taktische Entscheidungen lösen ein unmittelbares Problem in einem abgegrenzten Bereich: welche Bibliothek ein Service zum Parsen von Datumsangaben nutzt, wie eine bestimmte Datenbankabfrage aufgebaut ist, wie die Endpoints einer internen API heißen.
Strategisch heißt nicht langsam. Viele strategische Entscheidungen können und sollten schnell getroffen werden, sobald die Optionen klar sind, und manche sind umkehrbar, wenn sie gut strukturiert sind. Taktisch heißt nicht unwichtig: Eine schlechte taktische Entscheidung, die an fünfzig Stellen wiederholt wird (etwa wenn jeder Service seine eigene Wiederholungslogik ohne Back-off schreibt), kann sich zu einem Architekturproblem summieren. Architekten achten auf taktische Entscheidungen, die durch Wiederholung gerade strategisch werden, und machen daraus ein gemeinsames Prinzip oder eine Plattformfähigkeit.
Architektur oder Design? Beispielentscheidungen mit Begründung
| Entscheidung (für einen Onlineshop) | Urteil | Begründung |
|---|---|---|
| Das System in separat deploybare Services für Katalog, Checkout und Lieferung aufteilen | Architektur | Betrifft jedes Team, das Deployment, die Datenhoheit und das Ausfallverhalten; sehr teuer rückgängig zu machen. |
| PostgreSQL statt einer Dokumentendatenbank als Hauptspeicher für Bestellungen verwenden | Architektur | Prägt das Datenmodell, die Transaktionen und die nötigen Betriebskenntnisse; eine spätere Migration ist teuer und riskant. |
| Eine bestimmte JSON-Bibliothek im Checkout-Service verwenden | Design | Lokal auf einen Service begrenzt und an einem Tag austauschbar, wenn sie hinter dem eigenen Code des Service verborgen ist. |
| Verlangen, dass jeder Service strukturierte Logs mit einer gemeinsamen Korrelations-ID ausgibt | Architektur | Ein Querschnittsanliegen: Es funktioniert nur, wenn sich alle daran halten, und es bestimmt, wie schnell sich Vorfälle diagnostizieren lassen. |
| Die Methode benennen, die Liefergebühren berechnet | Design (Code) | Rein lokal; Umbenennen erledigen Werkzeuge automatisch. |
| Das Format der Bestellnummern festlegen, die Kunden angezeigt und mit dem Lagerpartner geteilt werden | Architektur | Niedrige Ebene, aber es überschreitet System- und Unternehmensgrenzen und wird auf Pakete gedruckt; eine Änderung erfordert Abstimmung mit einem externen Partner. |
| Das Strategy-Muster verwenden, um mehrere Regeln für Liefergebühren zu unterstützen | Design | Prägt das Innenleben einer Komponente; andere Komponenten sind nicht betroffen. |
| Produktpreise 60 Sekunden lang cachen | Kommt darauf an | Design, wenn sich Preise selten ändern und veraltete Werte harmlos sind; Architektur, wenn ein veralteter Preis ein rechtliches oder finanzielles Problem verursacht, weil die Entscheidung dann ein zentrales Qualitätsmerkmal (Korrektheit) bestimmt. |
Ebenen der Architektur
Das Wort Architektur wird außerdem auf mehreren Ebenen der Reichweite verwendet, und Berufsbezeichnungen folgen diesen Ebenen. Wer sie verwechselt, erzeugt viele Missverständnisse: Ein Unternehmensarchitekt und ein Softwarearchitekt können beide „der Architekt“ sein, und doch überschneidet sich ihre Arbeit kaum.
Unternehmensarchitektur betrachtet eine ganze Organisation: ihre Geschäftsfähigkeiten (was sie können muss, etwa „Schadensfälle prüfen“ oder „Kunden aufnehmen“), die Informationen, die sie hält, ihr Anwendungsportfolio und ihre Technologieplattformen und wie sich all das ändern sollte, um die Strategie zu unterstützen. Typische Ergebnisse sind Capability Maps, Roadmaps zum Zielzustand, Technologiestandards und Entscheidungen darüber, welche Systeme abgelöst werden. Das hier am weitesten verbreitete Framework ist TOGAF, herausgegeben von The Open Group, dessen aktuelle Version der TOGAF Standard, 10th Edition (2022) ist. Es bietet eine Methode (die Architecture Development Method) und einen Fundus an Inhalten für die Planung und Steuerung von Veränderungen im Unternehmen. Organisationen nutzen es in unterschiedlichem Maß; viele übernehmen Teile davon, manche finden es schwergewichtig, und dieser Kurs beschreibt es nur, damit Sie es wiedererkennen.
Lösungsarchitektur befasst sich mit einem Geschäftsproblem oder Programm, das typischerweise mehrere Anwendungen, Teams und Anbieter umfasst: etwa ein Krankenhaus, das eine Online-Terminbuchung einführt, die ein neues Web-Frontend, das bestehende Patientenverwaltungssystem, einen SMS-Anbieter und den Identitätsdienst verbinden muss. Der Lösungsarchitekt sorgt dafür, dass die Teile zusammenpassen, oft unter kaufmännischen und vertraglichen Randbedingungen.
Software- oder Anwendungsarchitektur, das Hauptthema dieses Kurses, betrifft die Strukturen und Qualitäten eines Systems: seine Zerlegung, seine Interaktionen zur Laufzeit, sein Deployment, seine Daten und seine Weiterentwicklung.
Drei Fachgebiete ziehen sich durch alle diese Ebenen. Datenarchitektur umfasst, wie Daten modelliert, verantwortet, gespeichert, bewegt, gesteuert und für Analysen genutzt werden (Kapitel 7). Sicherheitsarchitektur umfasst Identität, Zugriff, Datenschutz, Bedrohungsmodelle und die Platzierung von Sicherheitskontrollen (Kapitel 8). Infrastrukturarchitektur (heute oft Cloud- oder Plattformarchitektur) umfasst Rechenleistung, Netzwerke, Speicher, Umgebungen und Deployment-Plattformen (Kapitel 10).
Ebenen und übergreifende Fachgebiete
Wer welche Entscheidungen trifft
In einer gesunden Organisation werden Entscheidungen auf der niedrigsten Ebene getroffen, die genug Kontext hat und für die Folgen verantwortlich ist. Architektur ist nicht das alleinige Eigentum von Leuten mit „Architekt“ im Titel. Eine vernünftige Standardaufteilung sieht so aus, auch wenn jede Organisation sie anpasst.
| Art der Entscheidung | Meist getroffen von | Meist einbezogen |
|---|---|---|
| Technologiestandards und Plattformen für die Organisation (z. B. zugelassener Cloud-Anbieter, Identitätsplattform) | Unternehmensarchitekten, CTO, Architekturgremium | Lösungs- und Softwarearchitekten, Sicherheit, Finanzen |
| Wie mehrere Systeme und Anbieter zusammenwirken, um ein Geschäftsproblem zu lösen | Lösungsarchitekt | Product Owner, Unternehmensarchitekten, Architekten der Anbieter |
| Die Hauptstruktur eines Systems: Zerlegung, Kommunikationsstil, Datenhoheit | Softwarearchitekt oder technische Leitung des Teams, gemeinsam mit dem Team | Betrieb, Sicherheit, andere betroffene Teams |
| Design innerhalb einer Komponente: Klassen, Muster, Algorithmen | Das Entwicklungsteam | Architekt nur, wenn ein Prinzip oder Qualitätsmerkmal auf dem Spiel steht |
| Entscheidungen auf Codeebene: Benennung, lokales Refactoring | Einzelne Entwickler, über Code-Reviews | Normalerweise niemand sonst |
Zwei Warnsignale zeigen, dass die Aufteilung falsch ist. Wenn Architekten interne Klassenstrukturen festlegen, werden sie zum Engpass, und das Team hört auf mitzudenken. Wenn Teams unabhängig voneinander Entscheidungen mit systemweiter Wirkung treffen (etwa jedes seinen eigenen Message Broker wählt), zahlt die Organisation später für die Uneinheitlichkeit. Wie man festhält, welche Entscheidungen eine breitere Abstimmung brauchen, und wie man das Festhalten leicht macht, wird unter Entscheidungen und Abwägungen und ausführlich in Kapitel 4 bei den Architecture Decision Records behandelt.
Ausgearbeitetes Beispiel
Ausgearbeitetes Beispiel: Entscheidungen für eine Fahrdienst-App einordnen
Ein Fahrdienst-Start-up listet fünf anstehende Entscheidungen auf. Die technische Leitung nutzt die drei Anzeichen (Umkehrkosten, Reichweite, Wirkung auf zentrale Qualitätsmerkmale), um zu entscheiden, welche ein schriftliches Protokoll und eine breitere Prüfung brauchen.
| 1. Fahrtpositionen in einer Zeitreihendatenbank speichern | Umkehrbarkeit: teuer (Datenmigration). Reichweite: Fahrten, Abrechnung, Analytics. Qualität: Performance des Live-Trackings. Urteil: Architektur; aufschreiben und mit Daten- und Betriebsteams prüfen. |
|---|---|
| 2. Eine bestimmte HTTP-Client-Bibliothek im Preisservice verwenden | Umkehrbarkeit: billig. Reichweite: ein Service. Qualität: nichts Wesentliches. Urteil: Design; das Preisteam entscheidet. |
| 3. Fahrpreise auf dem Server berechnen, nie auf dem Smartphone | Umkehrbarkeit: mittel. Reichweite: Apps und Backend. Qualität: Sicherheit und Integrität der Preise. Urteil: Architektur; es ist ein maßgebendes Prinzip. |
| 4. Geld überall als ganzzahlige kleinste Einheiten (Pence, Cent) darstellen | Umkehrbarkeit: sehr teuer, sobald Daten und Partner-APIs es verwenden. Reichweite: jeder Service. Qualität: Korrektheit. Urteil: Architektur, obwohl es eine niedrige Ebene betrifft. |
| 5. Farben für den Dunkelmodus in der Fahrer-App verwenden | Umkehrbarkeit: trivial. Reichweite: eine Gruppe von Bildschirmen. Urteil: Design. |
Zwei der drei Architekturentscheidungen (3 und 4) haben überhaupt nichts mit Kästchen und Pfeilen zu tun; es sind Prinzipien und Konventionen. Nach der Abstraktionsebene allein wären sie falsch eingeordnet worden.
Entscheidung 4 ist die Art, die am häufigsten übersehen wird: Sie wirkt wie ein Codierdetail, wird aber sehr teuer zu ändern, sobald andere Systeme davon abhängen.
Häufige Fragen
Ist die Wahl einer Programmiersprache eine Architekturentscheidung?
Oft ja. Sie beeinflusst die Personalgewinnung, die verfügbaren Bibliotheken, die Performance-Eigenschaften und wie leicht sich Code zwischen Komponenten teilen lässt. In einem System aus vielen unabhängigen Services kann die Sprache eines kleinen Service eine lokale Entscheidung sein; die Standardsprache für die ganze Organisation ist Architektur.
Ist ein Datenbankschema Architektur oder Design?
Das hängt davon ab, wer es nutzt. Eine Tabelle, die nur innerhalb eines Service hinter dessen eigener API verwendet wird, ist Design. Ein Schema, das mehrere Services, Berichte und Partnerexporte direkt lesen, ist Architektur, weil jede Änderung mit allen abgestimmt werden muss. Viele Teams machen Schemas genau deshalb zur Privatsache eines Service, um sie zurück ins Design zu holen.
Bedeutet agile Entwicklung, dass es keine Architektur gibt?
Nein. Jedes System hat eine Architektur; agile Ansätze ändern, wann und wie über sie entschieden wird: Sie bevorzugen kleine, umkehrbare Schritte und schieben nicht umkehrbare Entscheidungen auf, bis genug bekannt ist. Abschnitt 1.8 behandelt das.
Wer entscheidet, ob eine Entscheidung bedeutsam ist?
Meist das Team und sein Architekt oder seine technische Leitung gemeinsam, anhand vereinbarter Kriterien wie der Anzeichen in diesem Abschnitt. Wer diese Kriterien aufschreibt, vermeidet zwei Fehlentwicklungen: dass über jede Entscheidung debattiert wird und dass man erst hinterher entdeckt, dass ein Team allein eine systemweite Entscheidung getroffen hat.
Wie Fachleute die Unterscheidung anwenden
Erfahrene Teams machen aus dem Kontinuum eine schlanke Routine. Sie vereinbaren eine kurze Liste der Arten von Entscheidungen, die ein schriftliches Protokoll und eine breitere Abstimmung brauchen, zum Beispiel alles, was eine öffentliche API ändert, einen neuen Datenspeicher oder eine neue Technologie einführt, Teamgrenzen überschreitet oder ein festgelegtes Qualitätsziel berührt. Alles andere entscheiden die Menschen, die die Arbeit machen, über das normale Code-Review. Sie überarbeiten die Liste, wenn etwas durchrutscht oder wenn sich Reviews nach Bürokratie anfühlen.
Sie suchen auch aktiv nach Wegen, die Menge der Architekturentscheidungen zu verkleinern, denn jede Entscheidung, die billig umkehrbar wird, ist eine weniger, die beim ersten Mal richtig sein muss. Einen Anbieter hinter einer Schnittstelle zu verbergen, eine Datenbank zur Privatsache eines Service zu machen, Feature-Flags für riskantes Verhalten zu nutzen und in kleinen Schritten zu deployen, verschiebt Entscheidungen vom architektonischen Ende des Kontinuums zum Design-Ende.
Prüfen Sie Ihr Verständnis
Warum kann eine Entscheidung über das Format einer Kennung architekturrelevant sein?
Weil ihre Änderung, sobald sich viele Services, Datenbanken und externe Partner darauf verlassen, abgestimmte Arbeit bei allen erfordert; ihre Änderungskosten und ihre Reichweite sind also hoch.
Was ist der Unterschied zwischen Unternehmens- und Lösungsarchitektur?
Unternehmensarchitektur umfasst die Fähigkeiten, Informationen, Anwendungen und Technologien der ganzen Organisation; Lösungsarchitektur befasst sich mit einem Geschäftsproblem, das meist mehrere Systeme und Teams umfasst.
Wie kann ein Architekt eine Entscheidung von der Architektur in Richtung Design verschieben?
Indem er sie billiger umkehrbar macht, etwa indem er eine Technologie hinter einer Schnittstelle verbirgt, damit sie sich lokal ersetzen lässt.
Quellen und weiterführende Literatur
Haben Sie eine Frage zu diesem Abschnitt? ArchitectBot, der KI-Lernassistent des Kurses, antwortet zuerst aus dem Kurs.
Fragen: „Wie entscheide ich, welche Entscheidungen meines Teams ein Architektur-Review brauchen und welche die Entwickler einfach treffen können?“