Yagni-Dioten
Viele Programmierer denken, mann könne es sich mit der You-aint-gonna-need-it-Philosopie einfacher machen.
Was sie dann tun, ist, komplizierte Programmarchitekturen zu stricken und ausgerechnet die Sonderfälle, anhand derer sich eine Programmarchitektur beweisen muss, nicht zu behandeln.
Die Folge ist, dass nicht nur zusätzliche Implementationen, sondern auch der gesamte vom Benutzer durchgeführte Betrieb vor Problemen stehen, weil die internen Managementroutinen, die in dem Fall, in dem es bis zum Benutzer durchschlägt, sogar aufgerufen werden, nicht existieren.
Anstatt als Programmierer dann entweder aussagen zu können: "Das geht nur wenn ich es implementiere, aber das geht ohne Weiteres" oder "Das erfordert eine aufwändige Grundfunktion meines Programms, das kann ich machen und hätte sowieso etliche Vorteile, aber das kostet mich bis zu 2 Monate" sagen sie dann: "Schwierig, ich muss erstmal analysieren, was da machbar ist". Und damit bauen sie dann einen Teil der Sonderfallbehandlungen ein, achten nicht auf die anderen Sonderfallbehandlungen, und treffen Entscheidungen mit 50% Wahrscheinlichkeit so, dass sie sich die anderen Fallbehandlungen verbauen.
So degeneriert eine Codebasis dann.