PrinzipKapitel I · Prinzipien · Baustein 6 von 6

Einfachheit & Komplexitätsbudget

Einfachheit hält einen Entwurf verständlich und betreibbar. Ein Komplexitätsbudget macht sichtbar, welche zusätzlichen Mechanismen für belegte Anforderungen eingesetzt werden.

  1. Belegter BedarfMechanismen brauchen einen Nachweis.
  2. Laufende KostenJeder Mechanismus kostet dauerhaft Verständnis und Betrieb.
  3. BudgetDas Team kann nur begrenzt Komplexität tragen.

Einordnung

Warum das wichtig ist

Jeder zusätzliche Mechanismus verursacht laufende Kosten in Kommunikation, Konsistenz und Betrieb. Ohne belegten Bedarf wird er zur Last. Einfach ist nicht leicht (Rich Hickey, „Simple Made Easy“): einfach heißt nicht verflochten, leicht heißt vertraut. Woher Komplexität stammt, behandelt der Baustein Komplexität.

Dieser Baustein erklärt die bewusste Wahl zusätzlicher Mechanismen. Für die Herkunft verschiedener Komplexitätsarten siehe Komplexität.

Auf einen Blick · Mechanismen gegen Komplexitätsbudget

Jeder zusätzliche Mechanismus braucht einen belegten Bedarf und kostet dauerhaft Verständnis; das Budget bleibt endlich.
Shop-Beispiel · Komplexitätsbudget

Wofür gibt der Shop sein Komplexitätsbudget aus?

Das Shop-Team prüft, ob Bestellung und Rechnung getrennte Services benötigen. Aktuell arbeiten sie in einem modularen Monolithen mit gemeinsamem Release.

So liest du das Bild

  1. Belegter Bedarf Das Etikett „belegt“ oder „vermutet“ an jedem Mechanismus mit seiner Begründung.
  2. Laufende Kosten Die Punkte je Mechanismus: vom Cache mit 1 bis zum Event Sourcing mit 4.
  3. Budget Der Balken gegen die Kapazität 10: Er füllt sich mit jedem zugeschalteten Mechanismus.

4 von 10 PunkteWas das kleine Shop-Team verstehen und betreiben kann

Noch 6 Punkte frei. Alles Ausgegebene ist belegt.

Werte illustrativ

Punkte illustrativ; schalte Mechanismen zu und sieh, ob das Budget reicht und wofür es ausgegeben wird.

Was kostet der zusätzliche Mechanismus?

Was kostet der zusätzliche Mechanismus?
KriteriumModularer Monolith heuteGetrennte Services (Variante)
Belegter Bedarfgemeinsames Release genügterst bei unabhängigen Releases
Kommunikationlokaler ModulvertragNetzwerkvertrag und Fehlersemantik
Datenkonsistenzeine lokale Transaktion für B-1042verteilte Abstimmung nötig
Betriebein Prozessmehrere Deployments und Beobachtung
Wahl für den ShopausreichendNutzen derzeit nicht belegt
Lies die Zeilen von oben nach unten: Erst der Bedarf, dann die Kosten, am Ende die Wahl.

Nutzen & Grenzen

Hilft, wenn

  • Ein kleines Team braucht einen tragfähigen Einstieg mit überschaubarem Betrieb.
  • Ein Entwurf ergänzt vorsorglich Plattformen oder Abstraktionen, deren Nutzen noch unklar ist.

Grenzen

  • Einfach heißt nicht strukturlos: Zu wenig Struktur ist ebenfalls teuer und endet im „Big Ball of Mud“. Einfachheit braucht Disziplin, etwa durch Modulgrenzen.
  • Ein früher einfacher Entwurf kann bei wachsendem Bedarf zur Grenze werden. Beobachte messbare Treiber; die Trade-off-Analyse zeigt, wann eine gezielte Erweiterung lohnt.

In der Praxis

  1. Aktuelle Aufgabe und Hindernis benennen. Beschreibe den Bedarf, der jetzt gelöst werden muss. Das Ergebnis trennt belegte Anforderungen von vermuteten späteren Erweiterungen.
  2. Kleinsten tragfähigen Entwurf wählen. Erfülle Qualitätsziele und Constraints mit der überschaubarsten Struktur. Vergleiche verbleibende Zusatzmechanismen anhand ihrer Kosten und Komplexität.
  3. Wirkung und Änderungsdruck beobachten. Lege fest, welche Messung oder Erfahrung eine Erweiterung begründet. Eine Trade-off-Analyse verbindet neue Last oder Teamzuständigkeit mit einer passenden Struktur.
Ausführliche Erklärung lesen

Ein einfacher Entwurf ist in seinem Kontext leicht zu erklären, zu ändern und zu betreiben. Er lässt notwendige fachliche Regeln sichtbar und fügt technische Mechanismen nur dann hinzu, wenn sie ein belegtes Bedürfnis erfüllen. Komplexität unterscheidet notwendige Regeln von zusätzlichem Aufwand; Trade-off-Analyse prüft Nutzen gegen Kosten.

Einfachheit zeigt sich darin, wie gut reale Aufgaben zu erklären, zu ändern und zu betreiben sind; Datei- und Technologiezahl geben dafür allein keinen Maßstab. Eine zusätzliche Plattform kann den Betrieb erschweren, eine klare Modulgrenze ihn vereinfachen. Beobachte deshalb Änderungs-, Last- und Betriebsanforderungen und passe den Entwurf an, wenn sich der belegte Bedarf verändert.

Selbst prüfen

Teste dich in drei Stufen

  1. AblesenIm Bild nachsehen

    Wie viele Punkte kosten die drei belegten Mechanismen zusammen?

    Lösung mit Begründung ansehen

    4 von 10 Punkten: Modulgrenzen 1, Queue 2 und Cache 1. Es bleiben 6 Punkte Reserve.

  2. AnwendenAuf eine neue Lage übertragen

    Das Rechnungsteam will ab sofort unabhängig von der Bestellung ausliefern. Was ändert sich in der Bewertung?

    Lösung mit Begründung ansehen

    Damit entsteht der Bedarf „unabhängige Releases“, der laut Zeile Belegter Bedarf getrennte Services begründen kann. Dann sind Netzwerkvertrag, Fehlersemantik und mehrere Deployments einzuplanen.

  3. BewertenEine Alternative abwägen

    Das Team will vorsorglich Services trennen, um später flexibler zu sein. Wie wägst du ab?

    Lösung mit Begründung ansehen

    Vorteil: spätere Trennung wäre vorbereitet. Nachteil: Netzwerkvertrag, verteilte Abstimmung und mehrere Deployments sind sofort zu tragen, der Nutzen ist derzeit nicht belegt. Besser: warten, bis der Bedarf feststeht.

Weiter im Lernpfad

Damit hast du Prinzipien & Grenzen durchlaufen. Weiter geht es mit Domänenmodellierung.