Big Ball of Mud
Lokale Ergänzungen können mit der Zeit wirksame Modulgrenzen auflösen.
- KopplungKopplung: Änderungen greifen unvorhersehbar über Modulgrenzen.
- ErgänzungErgänzung: Neue Anforderungen lagern sich ohne konsistenten Entwurf an.
- RekonstruktionRekonstruktion: Schrittweise Grenzen machen Weiterentwicklung wieder steuerbar.
Einordnung
Warum das wichtig ist
Strukturelle Entropie anhand realer Änderungsfolgen erkennen.
Strukturelle Entropie anhand realer Änderungsfolgen erkennen.
Big Ball of Mud: Entscheidung prüfen
Das Shop-Beispiel nutzt die bestehende gemeinsame Datenbank und sieben Module. Jede ergänzte Dienst- oder Betriebsform ist eine hypothetische Erweiterung. Im Shop werden Preisregeln an mehreren Stellen kopiert, und eine Änderung am Bestellstatus erfordert Anpassungen in Katalog, Warenkorb, Rechnung und Versand. Software Analytics zeigt häufig gemeinsam geänderte Dateien; ein Architekturreview bestätigt, dass fachliche Grenzen im Code kaum wirksam sind. Das Team stabilisiert zunächst kritische Abläufe, ordnet die Preisregel einem klaren Modul zu und ergänzt einen Vertragstest. Weitere Änderungen schneiden nachweislich Kopplung ab, während der Shop weiter ausgeliefert wird.
So liest du das Bild
- Kopplung Kopplung
- Ergänzung Ergänzung
- Rekonstruktion Rekonstruktion
| Begriff | Bedeutung | Prüffrage |
|---|---|---|
| Kopplung | Änderungen greifen unvorhersehbar über Modulgrenzen. | Welche Dateien ändern sich im Shop häufig gemeinsam? |
| Ergänzung | Neue Anforderungen lagern sich ohne konsistenten Entwurf an. | Welche Evidenz stützt eine Modulgrenze? |
| Rekonstruktion | Schrittweise Grenzen machen Weiterentwicklung wieder steuerbar. | Warum ist Co-Change allein keine Umbauanweisung? |
Nutzen & Grenzen
Hilft, wenn
- Strukturelle Entropie anhand realer Änderungsfolgen erkennen.
- Änderungskopplung mit konkreten Code- und Releasepfaden belegen.
Grenzen
- Das Bild fasst Symptome zusammen, aber bestimmt allein keine Modernisierungsstrategie.
- Gemeinsame Änderungen können auch legitime fachliche Zusammenarbeit ausdrücken und brauchen Code- und Teamkontext.
In der Praxis
- Wähle einen konkreten Preisregelwechsel und verfolge anhand von Code, Releases und Tests, welche der sieben Shopmodule dieselbe Regel jeweils eigenständig verändern.
- Validiere die beobachtete Änderungskopplung im Architekturreview und unterscheide fachliche Abhängigkeit von gemeinsam genutztem Code oder bloßer Repository-Nähe.
- Ziehe eine Preisregel in ein klar verantwortliches Modul, ergänze einen Vertragstest und vergleiche bei der nächsten Änderung Zahl der betroffenen Stellen und ausgelieferte Fehler.
Ausführliche Erklärung lesen
Big Ball of Mud bezeichnet ein System mit lockerer oder widersprüchlicher Struktur, dessen Organisation vor allem durch kurzfristige Ergänzungen und lokale Zwänge gewachsen ist. Das Fehlerbild beschreibt die Architekturwirkung, nicht eine einzelne Programmiersprache oder Teamentscheidung.
Foote und Yoder zeigen auch Kräfte, die das Muster entstehen lassen: schnelle Lieferung, fehlende Erfahrung und dauerhaft weiterverwendete Prototypen. Erkennen heißt daher zuerst, reale Abhängigkeiten und Änderungsfolgen sichtbar zu machen; eine pauschale Neuschreibung folgt daraus nicht.
Das Shop-Beispiel nutzt die bestehende gemeinsame Datenbank und sieben Module. Jede ergänzte Dienst- oder Betriebsform ist eine hypothetische Erweiterung. Im Shop werden Preisregeln an mehreren Stellen kopiert, und eine Änderung am Bestellstatus erfordert Anpassungen in Katalog, Warenkorb, Rechnung und Versand. Software Analytics zeigt häufig gemeinsam geänderte Dateien; ein Architekturreview bestätigt, dass fachliche Grenzen im Code kaum wirksam sind. Das Team stabilisiert zunächst kritische Abläufe, ordnet die Preisregel einem klaren Modul zu und ergänzt einen Vertragstest. Weitere Änderungen schneiden nachweislich Kopplung ab, während der Shop weiter ausgeliefert wird. software analytics und einfachheit helfen, diese Entscheidung mit benachbarten Fragen zu vergleichen.
Selbst prüfen
Teste dich in drei Stufen
AblesenIm Bild nachsehen
Welche Dateien ändern sich im Shop häufig gemeinsam?
Lösung mit Begründung ansehen
Preisregeln und Bestellstatuscode über mehrere Module hinweg.
AnwendenAuf eine neue Lage übertragen
Welche Evidenz stützt eine Modulgrenze?
Lösung mit Begründung ansehen
Verantwortlichkeit, Abhängigkeiten und Releasepfad für Preisregeln gemeinsam untersuchen.
BewertenEine Alternative abwägen
Warum ist Co-Change allein keine Umbauanweisung?
Lösung mit Begründung ansehen
Gemeinsame Änderungen können fachlich sinnvoll sein und brauchen Domänenkontext.
Vertiefen
Diese Bausteine führen die Gedanken dieser Seite weiter.
Quellen
- Big Ball of Mud (öffnet in neuem Tab)Foote und Yoder beschreiben Kräfte, Symptome und Rekonstruktionsmuster.
- Big Ball of Mud paper (öffnet in neuem Tab)Konferenzbeitrag von Foote und Yoder zum Fehlerbild und seinen Entstehungsbedingungen.
- Visualizing Design Erosion (öffnet in neuem Tab)Forschungsarbeit zur Entstehung und Visualisierung struktureller Erosion.