Gibt halt an Anwendungen oft neue Anforderungen.
Und das wird dann gerne mit wilden if-Verzweigungen tief hinten im code abgefrühstückt.
Irgendwann wird dann die Anwendung als "inder-sicher" erklärt, d.h. das man nur noch 1 Mann in der Firma in das Minenfeld schicken kann, um Änderungen vorzunehmen. Es werden dann Witze darüber gerissen, dass wenn der vom Bus überfahren wird...
Obs Sinn macht oder nicht kann nur Fallweise entschieden werden. Hängt von vielen Parametern ab. Wie wahrscheinlich sind Änderungen? Werden in Zukunft ähnliche Anwendungen entwickelt, für die die inder-sichere Anwendung als "Vorbild" dient? Wie hoch ist die Wahrscheinlichkeit, dass man bei der Neuprogrammierung eben doch nicht alle Anwendungsfälle beachtet? etc. etc.
Zur Zeit mach ich sowas als Externer in JEE. Ist auch ein psychologisches Minenfeld. Der auf seine Art sehr gute ursprüngliche Entwickler ist ein sehr ausgeprägter was-Typ (s. Vichenow, Schneider, Soft-Skills für Software-Entwickler). Die Meinungen des Teams sind für refactoring, weil wenn der in Urlaub fährt... Aber ich will in dieser verdammten IT-Welt Grabenkriege verhindern. Nix mehr von dieser abgründigen Scheisse.
Man muß natürlich die innere und äußere Funktionalität der Anwendung sehr, sehr, sehr, sehr detailliert analysieren, verstehen und kennen. Auch die zugreifenden Systeme.
Es ist nicht einfach, aber mir kann sowas auch Spaß machen. Naja, nach tagelangen Grass fressen ;-) für 20 Minuten. Und dann immer die Befürchtung, dass sich der ursprüngliche Erbauer bedrängt fühlt. Und dass ich am Ende dann doch etwas übersehen habe.
Viele der Methodiken + unterstützende Tools in der Java-Welt der letzten Jahre wie automatisiertes Testen, Continuous Integration, massiver Einsatz von Standardisierten Frameworks unterstützen stark die Richtung des Refactorings, also die innere Struktur der Anwendung zu verändern, um zukünftige Erweiterungen zu erleichtern, also die wo du Datenbank 2.0 nennst. Bleiben aber viel Anwendungs-spezifische Aspekte.
a pain in the ass, aber mein Opa ist 30 Jahre bei Wind und Wetter auf einen Kran geklettert und hat 8 Stunden Schiffe ent- und beladen.