Read in English · Leer en español · Lire en français
Abschnitt 1.3 von 1.8 · Einsteiger · 19 Min. Lesezeit
Warum Architektur zählt: Änderungskosten, Qualität, Risiko und echte Ausfälle
Videolektion
5 Min. · auf Englisch gesprochen, mit UntertitelnNur anhören (Audio)
Transkript lesen
Warum sollten sich ein Team, ein Product Owner oder eine Finanzdirektorin für Architektur interessieren und nicht nur für Funktionen? Diese Lektion beantwortet die Frage anhand von drei echten Fällen.
Stellen Sie sich zwei Küchen vor, die dieselbe Speisekarte kochen. In der einen sind die Stationen so angeordnet, dass sich die Köche selten in die Quere kommen. In der anderen steht der einzige Kühlschrank hinter der Spülmaschine. An einem ruhigen Abend servieren beide dieselben Gerichte. Doch an einem vollen Samstag oder wenn sich die Speisekarte ändert, gerät die zweite Küche ins Stocken. Bei Software ist es ähnlich. Die Funktionen mögen identisch aussehen, aber die Anordnung der Teile entscheidet, wie schnell, zuverlässig und günstig das System ist und wie mühsam es sich ändern lässt.
Qualitäten wie Performance, Verfügbarkeit, Sicherheit und Kosten sind emergent. Sie entstehen daraus, wie die Teile angeordnet sind und zusammenwirken, nicht aus einem einzelnen Stück Code. Macht der Checkout zum Beispiel fünf Aufrufe nacheinander an Services, die jeweils zu neunundneunzig Komma neun Prozent der Zeit verfügbar sind, kann die Kette höchstens etwa neunundneunzig Komma fünf Prozent erreichen. Die Wahrscheinlichkeiten multiplizieren sich. Eine Queue oder ein Cache ändert diese Rechnung, doch keine der beiden Änderungen ist in einer einzelnen Funktion sichtbar. Beide sind architektonisch.
Die Struktur bestimmt auch die Änderungskosten, und der Großteil der Kosten eines erfolgreichen Systems entsteht nach dem ersten Release. Martin Fowlers Design Stamina Hypothesis fasst den Effekt. Ein Team, das wenig auf Struktur achtet, liefert anfangs oft schneller. Doch das Durcheinander bremst jede Änderung, und ein Team, das in Struktur investiert hat, überholt es. Fowler nennt es eine Hypothese, weil es schwer zu messen ist, und vermutet, dass es sich meist nach Wochen statt Monaten auszahlt. Diese Verlangsamung sind die Zinsen auf technische Schulden, die Abschnitt eins Punkt sieben behandelt.
Hier ein ausgearbeitetes Beispiel mit veranschaulichenden Zahlen. Ein Onlineshop speichert Geld als Gleitkommazahlen, die viele Dezimalwerte nicht exakt darstellen können, sodass Summen manchmal um einen Penny danebenliegen. Im ersten Monat könnten zwei Entwickler in etwa einem halben Tag darauf umstellen, ganze Pence zu speichern. Das sind rund dreihundert Pfund. Im dritten Jahr verarbeiten fünfunddreißig Services Geldbeträge, hundertzwanzig Datenbankspalten speichern sie, es gibt zweihundert Millionen alte Bestellzeilen, und vier Partnersysteme tauschen sie aus. Jetzt kostet dieselbe Änderung etwa hundertfünfundneunzig Personentage. Das sind rund hundertsiebzehntausend Pfund, ein Mehrhundertfaches der ursprünglichen Kosten. Die Entscheidung selbst wurde nie größer. Gewachsen ist alles, was darauf aufgebaut wurde.
Architektur dämmt Risiken auch ein oder verstärkt sie. Am ersten August 2012 verlor das Handelshaus Knight Capital nach etwa fünfundvierzig Minuten Handel mehr als vierhundertsechzig Millionen Dollar. Sein Order-Router erhielt Orders, die mit einem Flag markiert waren. Neuer Code verwendete dieses Flag wieder, das Jahre zuvor eine alte Funktion namens Power Peg eingeschaltet hatte. Der Code von Power Peg war noch vorhanden. Der neue Code wurde von Hand auf die acht Server des Routers deployt. Sieben erhielten ihn und verarbeiteten Orders normal. Doch ein Techniker kopierte den Code nicht auf den achten Server. Als das Flag eingeschaltet wurde, führte dieser Server Power Peg aus. Er sandte Millionen unbeabsichtigter Orders und erhielt über vier Millionen Ausführungen. Kein zweiter Techniker prüfte das Deployment, und nichts prüfte, ob alle Server übereinstimmten. Erreichbarer alter Code, ein Flag mit zwei Bedeutungen und ein ungeprüftes Release sind Entscheidungen über Struktur und Prozess, nicht eine fehlerhafte Zeile.
Als der amerikanische Krankenversicherungsmarktplatz HealthCare punkt gov im Oktober 2013 öffnete, konnten viele Menschen keine Konten anlegen. Staatliche Prüfer stellten fest, dass er gestartet war, ohne zu prüfen, ob er seine Performance-Anforderungen erfüllte. Mehrere Auftragnehmer bauten getrennte Teile, und niemand testete das zusammengesetzte Ganze unter realistischer Last. Kapazität ist eine Eigenschaft des Gesamtsystems, also muss jemand das Ganze verantworten. 2023 verlagerte das Prime-Video-Team von Amazon einen Monitoring-Service von verteilten Serverless-Schritten in einen einzigen Prozess, der Daten im Arbeitsspeicher weiterreicht. Laut dem Team sanken die Infrastrukturkosten um über neunzig Prozent. Das heißt nicht, dass Monolithen Serverless schlagen. Der erste Entwurf passte zu einer frühen, kleineren Arbeitslast. Bei Architektur geht es um Passung, nicht um Mode: Fragen Sie, was die Arbeitslast, das Team und das Budget brauchen.
Darum zählt Architektur. Der vollständige Abschnitt schildert jeden Fall ausführlicher und zeigt, wie Teams, Kommunikation und Schätzungen von der Struktur abhängen. Als Nächstes sehen wir uns in Abschnitt eins Punkt vier an, was ein Architekt eigentlich tut. Bis gleich.
Was Sie wissen müssen
- Die Architektur bestimmt weitgehend Qualitätsmerkmale wie Performance, Verfügbarkeit, Sicherheit und Kosten, weil diese daraus entstehen, wie die Teile angeordnet sind und zusammenwirken.
- Die Kosten, eine Entscheidung zu ändern, wachsen, je mehr Code, Daten, Integrationen und Teams darauf aufbauen; frühe strukturelle Entscheidungen prägen daher Kosten und Tempo aller späteren Arbeit.
- Die Architektur bestimmt das Risiko, wie sich Arbeit auf Teams aufteilen lässt (Gesetz von Conway), die Kommunikation und die Fähigkeit, Änderungen abzuschätzen.
- Knight Capital verlor am 1. August 2012 mehr als 460 Millionen USD, nachdem ein manuelles Deployment einen von acht Servern mit altem Code zurückgelassen hatte, den ein wiederverwendetes Flag reaktivierte.
- Das GAO stellte fest, dass HealthCare.gov im Oktober 2013 startete, ohne dass geprüft war, ob es die Performance-Anforderungen erfüllte – nach ungeklärten Anforderungen, schwacher Aufsicht und unvollständigen Tests.
- Prime Video verlagerte 2023 einen Monitoring-Service von verteilten Serverless-Schritten in einen einzigen Prozess und senkte damit Berichten zufolge die Infrastrukturkosten um über 90 % – ein Beleg dafür, dass es bei Architektur um Passung geht, nicht um Mode.
Die Entscheidungen, deren Fehler teuer sind
Abschnitt 1.1 hat Architektur als die Menge der Strukturen und bedeutenden Entscheidungen definiert, die ein System prägen, wobei sich die Bedeutung an den Änderungskosten bemisst. Dieser Abschnitt stellt die praktische Anschlussfrage: Na und? Warum sollte sich ein Team, ein Product Owner oder eine Finanzdirektorin für Architektur interessieren und nicht einfach nur für Funktionen?
Die kurze Antwort lautet: Die Architektur entscheidet mehr als jeder andere technische Faktor darüber, wie das System beschaffen sein wird: wie schnell, wie zuverlässig, wie sicher, wie günstig im Betrieb und vor allem wie leicht zu ändern. Funktionen sind das, was ein System tut. Die Architektur bestimmt, wie gut es das tut und was es kosten wird, im nächsten Jahr etwas anderes zu tun. Viele große Softwareausfälle und viele teure Erfolge lassen sich auf eine Handvoll struktureller Entscheidungen zurückführen.
Die Architektur bestimmt die Qualitätsmerkmale
Ein Qualitätsmerkmal ist eine messbare Eigenschaft dafür, wie gut ein System seine Aufgabe erfüllt: Performance, Verfügbarkeit, Sicherheit, Änderbarkeit, Skalierbarkeit, Benutzbarkeit, Kosteneffizienz und weitere. Kapitel 2 macht sie präzise. Entscheidend ist hier, dass die meisten Qualitätsmerkmale emergent sind: Sie entstehen daraus, wie die Teile angeordnet sind und zusammenwirken, nicht aus einem einzelnen Stück Code.
Nehmen Sie die Verfügbarkeit. Muss der Checkout eines Onlineshops nacheinander fünf synchrone Aufrufe an Services machen, die jeweils zu 99,9 % der Zeit verfügbar sind, kann die Kette als Ganzes nicht verfügbarer sein als ungefähr 99,5 %, so gut jeder Service auch geschrieben ist, weil sich die Wahrscheinlichkeiten multiplizieren. Eine Queue, damit einige dieser Schritte später stattfinden, oder ein Cache für Ergebnisse, damit manche Aufrufe entfallen, ändert die Rechnung. Keine der beiden Änderungen ist innerhalb einer einzelnen Funktion sichtbar; beide sind architektonisch. Performance, Sicherheit und Kosten verhalten sich genauso. Eine sichere Anmeldeseite macht ein System nicht sicher, wenn ein interner Service ohne Authentifizierung aus dem Internet erreichbar ist.
Die Funktionalität ist dagegen meist weitgehend unabhängig von der Struktur. Sie können dieselben Funktionen einer Banking-App als eine einzige deploybare Einheit oder als fünfzig Services umsetzen; die Nutzer sehen dieselben Schaltflächen. Was sich ändert, ist alles andere: wie schnell eine Korrektur ausgeliefert werden kann, was passiert, wenn ein Teil ausfällt, wie viele Entwicklerinnen und Entwickler das System aufnehmen kann und wie die Cloud-Rechnung aussieht.
Kosten und Tempo von Änderungen
Der Großteil der Kosten eines erfolgreichen Systems entsteht nach dem ersten Release, wenn es an neue Anforderungen angepasst wird. Die Struktur ist deshalb vor allem wichtig, weil sie bestimmt, wie teuer jede künftige Änderung wird. In einem gut strukturierten System betrifft eine Änderung der Steuerregeln ein Modul. In einem verworrenen System betrifft sie zwanzig, die alle getestet und abgestimmt werden müssen.
Martin Fowlers Design Stamina Hypothesis (2007) fasst den Effekt. Ein Team, das wenig auf die innere Struktur achtet, liefert anfangs oft schneller. Mit der Zeit bremst das angesammelte Durcheinander jede Änderung, und ein Team, das in Struktur investiert hat, überholt es. Fowler nennt dies eine Hypothese, weil es schwer streng zu messen ist, und er vermutet, dass der Kreuzungspunkt meist nach Wochen statt Monaten kommt. Die Verlangsamung sind die Zinsen auf die technischen Schulden, die Abschnitt 1.7 behandelt.
Die Design Stamina Hypothesis
Ausgearbeitetes Beispiel
Ausgearbeitetes Beispiel: die Kosten einer Entscheidung im Zeitverlauf
Ein Onlineshop speichert Geldbeträge als Gleitkommazahlen. Gleitkommaarithmetik kann viele Dezimalwerte nicht exakt darstellen (0,1 + 0,2 ist nicht genau 0,3), sodass Summen gelegentlich um einen Penny von dem abweichen, was die Buchhaltung erwartet. Die Zahlen unten sind veranschaulichende Annahmen, keine Branchendaten, und sollen zeigen, wie die Änderungskosten wachsen.
| Monat 1: anders entscheiden | Zwei Entwickler vereinbaren, stattdessen ganzzahlige kleinste Währungseinheiten (Pence) zu speichern. Aufwand: etwa ein halber Tag. Kosten bei angenommenen £600 pro Personentag: etwa £300. |
|---|---|
| Jahr 3: was auf der Entscheidung aufgebaut wurde | 35 Services verarbeiten Geldbeträge; 120 Datenbankspalten speichern sie; 200 Millionen historische Bestellzeilen; 4 Partnerintegrationen (Zahlungsanbieter, Lager, Buchhaltung, Marktplatz) tauschen sie aus. |
| Jahr 3: Codeänderungen | 35 Services zu je etwa 3 Personentagen für Änderung, Test und Release = 105 Personentage. |
| Jahr 3: Datenmigration | Spalten umwandeln, Historie migrieren, Summen abgleichen: etwa 20 Personentage, dazu ein geplantes Wartungsfenster. |
| Jahr 3: Abstimmung mit Partnern | 4 Partner zu je etwa 10 Personentagen, einschließlich ihrer Tests und Vertragsänderungen = 40 Personentage. |
| Jahr 3: End-to-End-Tests und Abgleich mit der Finanzabteilung | Etwa 30 Personentage. |
| Jahr 3: Summe | Etwa 195 Personentage oder rund £117.000, dazu das Fehlerrisiko während der Migration und monatelange Durchlaufzeit. Das ist ein Mehrhundertfaches der Kosten in Monat 1. |
Die Entscheidung selbst wurde nie größer. Gewachsen ist alles, was darauf aufgebaut wurde: Code, Daten, Partner und Gewohnheiten.
Deshalb beschrieb Ralph Johnson Architektur als die Entscheidungen, die man gern früh richtig treffen würde, und deshalb achten Architekten auf Konventionen auf niedriger Ebene mit großer Reichweite.
Eine alternative Strategie ist, solche Entscheidungen billiger umkehrbar zu machen, etwa indem man die gesamte Geldbehandlung von Anfang an hinter einem gemeinsamen Typ oder einer Bibliothek kapselt, sodass eine spätere Änderung lokal bleibt.
Risiko, Teams, Kommunikation und Schätzung
Risiko. In der Architektur werden die meisten technischen Risiken entweder eingedämmt oder verstärkt. Ein Entwurf mit einem Single Point of Failure, einer ungetesteten Integration zwischen unabhängig gebauten Teilen oder einer unerprobten Technologie im Kern trägt ein Risiko, das keine noch so sorgfältige Programmierung beseitigt. Ein Großteil der Architekturarbeit ist Risikomanagement: erkennen, was gründlich schiefgehen könnte, und die Struktur so gestalten, dass es entweder nicht passieren kann oder nur begrenzten Schaden anrichtet, wenn es passiert.
Arbeit auf Teams aufteilen. Melvin Conway beobachtete 1968, dass Organisationen, die Systeme entwerfen, dazu neigen, Entwürfe hervorzubringen, die ihre eigenen Kommunikationsstrukturen abbilden. Das heißt heute Gesetz von Conway, und es wirkt in beide Richtungen. Ein System, dessen Teile klare Grenzen und schmale Schnittstellen haben, erlaubt mehreren Teams, mit wenig Abstimmung parallel zu arbeiten. Ein System, in dem alles von allem abhängt, zwingt jedes Team in jedes Meeting. Architektur und Organisationsgestaltung sind daher eng verflochten, wie der Abschnitt zum Gesetz von Conway in Kapitel 3 erklärt.
Kommunikation. Eine Architektur gibt Menschen ein gemeinsames Vokabular und eine gemeinsame Landkarte. Neue Entwicklerinnen und Entwickler lernen das System schneller, Produktmanager verstehen, warum manche Wünsche billig und andere teuer sind, und der Betrieb weiß während eines Incidents, was wovon abhängt.
Schätzung und Planung. Die Zerlegung in bekannte Teile macht Schätzungen erst möglich: Eine Änderung lässt sich auf die Komponenten zurückführen, die sie berührt, und jede kann von dem Team geschätzt werden, das sie kennt. Ohne klare Struktur sind Schätzungen geraten, weil niemand mit Sicherheit sagen kann, wie weit eine Änderung Kreise zieht.
Fallstudie: Knight Capital, 1. August 2012
Knight Capital war einer der größten Market Maker für US-Aktien. Laut der Verfügung der US-Börsenaufsicht SEC (Securities and Exchange Commission) vom 16. Oktober 2013 sandte Knights automatischer Order-Router (SMARS genannt) in den ersten 45 Minuten des Handels am 1. August 2012 Millionen unbeabsichtigter Orders an den Markt, während er 212 kleine Privatkundenorders verarbeitete. Er erhielt mehr als 4 Millionen Ausführungen in 154 Aktien, über 397 Millionen Stück, und blieb auf großen ungewollten Positionen sitzen. Knight verlor mehr als 460 Millionen USD, brauchte binnen Tagen eine Notfallinvestition von außen, und die SEC verhängte später eine Geldbuße von 12 Millionen USD wegen Verstößen gegen die Marktzugangsregeln.
Die SEC-Verfügung beschreibt den Mechanismus. Jahre zuvor hatte Knight eine alte Funktion namens Power Peg nicht mehr verwendet, doch ihr Code blieb im Router und konnte weiterhin ausgelöst werden: Es war toter Code, der nicht tot war. 2012 schrieb Knight neuen Code für ein neues NYSE-Programm, das Retail Liquidity Program, und dieser neue Code verwendete ein Flag wieder, das früher Power Peg eingeschaltet hatte. Der neue Code wurde manuell auf die acht Server des Routers deployt. Ein Techniker kopierte ihn nicht auf einen davon, kein zweiter Techniker prüfte das Deployment, und Knight hatte kein schriftliches Verfahren, das eine solche Prüfung vorschrieb. Als das Flag eingeschaltet wurde, führten sieben Server den neuen Code aus; der achte deutete das Flag als „Power Peg ausführen“ und sandte Orders, ohne zu erkennen, dass sie bereits ausgeführt waren. Automatische E-Mails, die vor einem Problem warnten, wurden vor Markteröffnung verschickt, aber niemand handelte danach.
Wie ein veralteter Server den Verlust von Knight Capital verursachte
Es wäre unfair, dies einfach einen Programmierfehler zu nennen, und ebenso unfair, es als reinen Betriebsfehler abzutun. Die architektonischen Lehren betreffen Struktur und Deploybarkeit: veraltete Funktionalität, die in einem Produktivsystem erreichbar blieb; ein Flag mit zwei Bedeutungen in verschiedenen Codeversionen; ein Deployment-Prozess ohne automatische Prüfung, ob alle Server dieselbe Version ausführten; und, wie die SEC betonte, unzureichende Kontrollen, um den Schaden zu begrenzen, sobald etwas schiefging. Jede davon ist eine Entscheidung darüber, wie das System gebaut und ausgeliefert wird, nicht über eine einzelne Codezeile.
Fallstudie: der Start von HealthCare.gov, Oktober 2013
HealthCare.gov, der bundesweite Marktplatz für Krankenversicherungen in den USA, öffnete am 1. Oktober 2013 für Anmeldungen. Viele Menschen konnten keine Konten anlegen oder Anträge abschließen, und die Website litt wochenlang unter Ausfällen. Der US-Rechnungshof GAO (Government Accountability Office) und das Office of Inspector General (OIG) des Gesundheitsministeriums (Department of Health and Human Services) untersuchten den Fall später; ihre Ergebnisse sind die beste Quelle dafür, was schiefging.
Der GAO-Bericht vom Juli 2014 (GAO-14-694) stellte fest, dass die Centers for Medicare and Medicaid Services (CMS) Aufträge vergaben, bevor zentrale Anforderungen geklärt waren, dass sich die Anforderungen ständig änderten, dass die Aufsicht schwach war und dass CMS das System startete, ohne zu prüfen, ob es seine Performance-Anforderungen erfüllte. Die Verpflichtungen aus dem Hauptvertrag für den Marktplatz stiegen zwischen 2011 und Anfang 2014 von 56 Millionen USD auf mehr als 209 Millionen USD. Ein zweiter GAO-Bericht vom März 2015 (GAO-15-238) stellte fest, dass die Systeme vor dem Start nicht vollständig getestet worden waren und dass zu den Problemen beim Start eine unzureichende Kapazitätsplanung, Programmierfehler und geplante, aber nicht umgesetzte Funktionen gehörten. Die Fallstudie des OIG von 2016 nannte das Fehlen einer klaren Leitung und die schlechte Abstimmung zwischen fachpolitischer und technischer Arbeit als zentrale Ursachen. Nach intensiven Korrekturarbeiten konnte die Website innerhalb von etwa zwei Monaten eine hohe Nachfrage bewältigen.
Die Geschichte von HealthCare.gov handelt vor allem vom Programmmanagement, doch ihre architektonische Lehre ist direkt. Der Marktplatz wurde von mehreren Auftragnehmern als getrennte Teile gebaut, die zusammenarbeiten mussten, darunter ein Daten-Hub mit Anbindung an andere Bundesbehörden, und niemand prüfte durchgängig unter realistischer Last, ob das zusammengesetzte Ganze seine Kapazitäts- und Performance-Ziele erreichte. Qualitätsmerkmale wie Kapazität sind Eigenschaften des Gesamtsystems; sie lassen sich daher nur von jemandem sicherstellen, der die Struktur des Gesamtsystems verantwortet und es als Ganzes testet.
Fallstudie: Prime Video und Architektur als Passung, nicht als Mode
Im März 2023 veröffentlichte ein Engineer aus dem Video-Quality-Analysis-Team von Amazon Prime Video im Prime Video Tech Blog einen Beitrag über einen Service, der Videostreams auf Qualitätsmängel überwacht. Die erste Version war aus verteilten Serverless-Komponenten gebaut: AWS Step Functions orchestrierte die Schritte, und AWS-Lambda-Funktionen erledigten die Arbeit, wobei Zwischenbilder des Videos über den Speicher Amazon S3 zwischen den Schritten weitergereicht wurden. Das Team berichtete, dass dieser Entwurf bei etwa 5 % der erwarteten Last an eine harte Skalierungsgrenze stieß und bei voller Last zu teuer gewesen wäre, vor allem wegen der Orchestrierungsgebühren pro Schritt und der vielen Speicheranfragen.
Das Team verlagerte die Medienkonvertierung und die Fehlererkennung in einen einzigen Prozess, der in Containern auf Amazon ECS lief, reichte die Bilder im Arbeitsspeicher statt über den Speicher weiter und skalierte, indem es mehr Kopien dieses Prozesses startete. Laut dem Beitrag sanken die Infrastrukturkosten um über 90 %, und der Service konnte weiter skalieren. Der Beitrag wurde vielfach als „Amazon gibt Microservices auf“ geteilt, was er nicht sagte: Die Änderung betraf einen Service, und der Autor merkte an, dass Microservices und Serverless-Komponenten bei hoher Last durchaus funktionieren, die Wahl zwischen ihnen und einem Monolithen aber von Fall zu Fall getroffen werden muss.
Der Monitoring-Service von Prime Video vorher und nachher
Die Lehre ist nicht, dass Monolithen Serverless schlagen. Sie lautet, dass es bei Architektur um Passung geht. Der Serverless-Entwurf war schnell gebaut und für eine frühe, kleinere Arbeitslast angemessen. Als das prägende Merkmal der Arbeitslast (sehr große Datenmengen, die für jede Sekunde jedes Streams zwischen den Schritten weitergereicht werden) dominierte, war eine Struktur, die diese Daten viele Male über das Netzwerk bewegte, die falsche Wahl, und eine andere Struktur passte besser. Ein guter Architekt fragt, was die Arbeitslast, das Team und das Budget brauchen, nicht, was gerade in Mode ist.
Prüfen Sie Ihr Verständnis
Warum kann ein gut geschriebener Service trotzdem Teil eines unzuverlässigen Systems sein?
Weil Verfügbarkeit daraus entsteht, wie Services voneinander abhängen. Eine Kette synchroner Aufrufe multipliziert die Ausfallwahrscheinlichkeiten, sodass das Ganze weniger verfügbar sein kann als jedes Teil.
Was machte den Ausfall bei Knight Capital zu einem architektonischen Problem statt zu einem einfachen Bug?
Erreichbarer veralteter Code, ein Flag mit zwei Bedeutungen über Versionen hinweg und ein manuelles Deployment ohne automatische Prüfung, ob alle Server übereinstimmten: alles Entscheidungen über Struktur und Release, nicht eine fehlerhafte Zeile.
Was ist die wichtigste Lehre aus dem Fall Prime Video?
Dass eine Architektur zu ihrer Arbeitslast und ihrem Kontext passen muss. Ein Entwurf, der bei einer bestimmten Größenordnung und einem bestimmten Datenmuster geeignet ist, kann unpassend werden, und eine geänderte Struktur kann die Kosten grundlegend verändern.
Warum wachsen die Kosten, eine Entscheidung zu ändern, mit der Zeit?
Weil immer mehr Code, gespeicherte Daten, Integrationen, Partner und Gewohnheiten davon abhängen, sodass eine Änderung bedeutet, all das zu ändern.
Quellen und weiterführende Literatur
- SEC press release 2013-222: SEC charges Knight Capital with violations of market access rule
- GAO-14-694: Healthcare.gov: Ineffective Planning and Oversight Practices Underscore the Need for Improved Contract Management
- GAO-15-238: Healthcare.gov: CMS Has Taken Steps to Address Problems, but Needs to Further Implement Systems Development Best Practices
- Return of the Monolith: Amazon Dumps Microservices for Video Monitoring (The New Stack)
- Design Stamina Hypothesis (Martin Fowler)
Haben Sie eine Frage zu diesem Abschnitt? ArchitectBot, der KI-Lernassistent des Kurses, antwortet zuerst aus dem Kurs.
Fragen: „Wie erkläre ich einem Produktmanager, warum eine Änderung unseres Bestelldatenmodells jetzt so viel mehr kostet, als sie vor einem Jahr gekostet hätte?“