Without wanting to start a flame war or offend anyone, just because I love the cite: Java is a hype-oriented language.

More serious:

What's so bad about legacy code when it does what it was written for? Here at my company one of the oldest running programms (I'm pretty sure it is _the_ oldest ;-) is a very, very ugly, totally unmaintainable perl script I wrote when I just had started to learn perl. Well, it does it's job for years now. OK, if a feature request would arise I'd probably rewrite it from scratch, or I'd try to use the existing programm more as a module and try to wrap something around it.

We can see another point here: we programmers still have the habit of overestimating our skills; read: understimating the problem at hand and the time it'll take. It is no wonder that so many project die away and very often the coders later blame the management (or someone else in a similar position) for the timelines. Well, quite often those timelines are based upon a coder telling his team-leader that it is not a problem to write this or that in a few days. I have seen projects which had dates and milestones which could not be reached and which were proposed by "leaders", and I have seen coders speaking of projects that will have a few thousand lines to be done in a week. Well, Yeah ... Come on...

And finally: your story contains the old legend of correct specs which were laid out before a single line of code was written and which precisely describe what the programm is supposed to do in the end. *laugh*. I must admit: I have never seen that in real life.