Jeder kennt Software die unter dem Euphemismus Legacy Software in vielen Firmen ihr Unwesen treibt. Obwohl in einer Hochsprache geschrieben, spürt man ihre Verwandtschaft mit Assembler Routinen und Shell Skripten. Generationen von missgelaunten Programmierern, Aushilfen und Praktikanten haben einen, vor Jahren noch recht ansehnlichen Entwurf, in etwas abgrundtief hässliches verwandelt.
Das Problem mit dieser Software ist, dass sie irgendwie funktioniert, aber niemand weiß wieso. Auch sind Informationen über den Sinn und Zweck weiter Teile der Software schlicht verloren gegangen. Fehler werden nur widerwillig behoben, Systeme selten migriert und veraltete Bibliotheken so gut wie nie ersetzt, automatisierte Tests unauffindbar und die Dokumentation hoffnungslos veraltet. Vielen Entwicklern und Verantwortlichen ist die Gefahr zu groß, durch Veränderungen an der Software, etwas kaputt zu machen.