Be Software Architecture Wise
Be Wise Apps

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 Untertiteln
Nur 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

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

MerkmalZu stellende FrageBeispiel
Schwer oder teuer rückgängig zu machenWenn 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 ReichweiteWie viele Komponenten, Teams oder Systeme berührt es?Das Format der Kundenkennungen festlegen, die in allen Services verwendet werden
Bestimmt ein zentrales QualitätsmerkmalEntscheidet 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 RandbedingungSchränkt es ein, was andere Teams wählen dürfen?Vorschreiben, dass alle Services Events an einen gemeinsamen Broker veröffentlichen
Beinhaltet bedeutsame AbwägungenGeben 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 RisikoHat 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

Ein Kontinuum von Architektur bis Code, mit drei Dimensionen, die eine Entscheidung darauf einordnenEher ArchitekturEher Design / CodeUmkehrkostenMonate, viele TeamsMinuten, eine PersonReichweiteganzes System/Org.Funktion oder KlasseWirkung auf Qualitätenbestimmt eine Qualitätlokal/keinePunkte: eine Entscheidung (Wahl des Nachrichtenformats) auf jeder Dimension
Drei Dimensionen ordnen eine Entscheidung zwischen Architektur und Design ein; eine Entscheidung kann auf jeder anders abschneiden.

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)UrteilBegründung
Das System in separat deploybare Services für Katalog, Checkout und Lieferung aufteilenArchitekturBetrifft 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 verwendenArchitekturPrä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 verwendenDesignLokal 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 ausgibtArchitekturEin 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 berechnetDesign (Code)Rein lokal; Umbenennen erledigen Werkzeuge automatisch.
Das Format der Bestellnummern festlegen, die Kunden angezeigt und mit dem Lagerpartner geteilt werdenArchitekturNiedrige 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ützenDesignPrägt das Innenleben einer Komponente; andere Komponenten sind nicht betroffen.
Produktpreise 60 Sekunden lang cachenKommt darauf anDesign, 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

Ebenen der Architektur vom Unternehmen bis zum Code, quer dazu Daten-, Sicherheits- und InfrastrukturarchitekturUnternehmensarchitekturLösungsarchitekturein Geschäftsproblem, mehrere SystemeSoftware-/Anwendungsarchitekturein System: Strukturen und QualitätenFeinentwurfin einer KomponenteCodeDaten-architekturSecurity-ArchitekturInfrastruktur-architekturJede Ebene beschränkt die darunter; Fachgebiete gehen durch alle Ebenen
Die Reichweite verengt sich vom Unternehmen bis zum Code; Daten-, Sicherheits- und Infrastrukturarchitektur gelten auf jeder Ebene.

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 EntscheidungMeist getroffen vonMeist einbezogen
Technologiestandards und Plattformen für die Organisation (z. B. zugelassener Cloud-Anbieter, Identitätsplattform)Unternehmensarchitekten, CTO, ArchitekturgremiumLösungs- und Softwarearchitekten, Sicherheit, Finanzen
Wie mehrere Systeme und Anbieter zusammenwirken, um ein Geschäftsproblem zu lösenLösungsarchitektProduct Owner, Unternehmensarchitekten, Architekten der Anbieter
Die Hauptstruktur eines Systems: Zerlegung, Kommunikationsstil, DatenhoheitSoftwarearchitekt oder technische Leitung des Teams, gemeinsam mit dem TeamBetrieb, Sicherheit, andere betroffene Teams
Design innerhalb einer Komponente: Klassen, Muster, AlgorithmenDas EntwicklungsteamArchitekt nur, wenn ein Prinzip oder Qualitätsmerkmal auf dem Spiel steht
Entscheidungen auf Codeebene: Benennung, lokales RefactoringEinzelne Entwickler, über Code-ReviewsNormalerweise 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 speichernUmkehrbarkeit: 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 verwendenUmkehrbarkeit: billig. Reichweite: ein Service. Qualität: nichts Wesentliches. Urteil: Design; das Preisteam entscheidet.
3. Fahrpreise auf dem Server berechnen, nie auf dem SmartphoneUmkehrbarkeit: 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) darstellenUmkehrbarkeit: 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 verwendenUmkehrbarkeit: 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.

Weiter · 1.3Warum sie zähltArchitektur entscheidet über die Qualitäten eines Systems, über Kosten und Tempo jeder künftigen Änderung, über seine Risiken und darüber, wie Teams arbeiten können. Echte Fälle von Knight Capital, HealthCare.gov und Prime Video zeigen, warum.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: „Wie entscheide ich, welche Entscheidungen meines Teams ein Architektur-Review brauchen und welche die Entwickler einfach treffen können?“