I'm speaking at QCon london this year on the topic Modern Legacy Systems
This was tweeted by @QCon as follows (note this talk isn't specifically about Java but about systems in general).
and within minutes UncleBobMartin replied:
This illustrates a good point about attitudes towards legacy code and systems. Although the term is often used negatively, legacy code is NOT, necessarily, bad code (and a system is more than just code).
In most areas of life a 'Legacy' is a good thing! It might refer to a valuable art collection left to a museum or perhaps the body of work of a famous author. Only in I.T. is something old (but valuable) viewed as bad.
When we refer to a System being Legacy we're really saying that the system is built in a way that differs to how we'd choose to do so now. The system may have been written well, using the best technologies and tools available at the time. A system written in 2001 using Java 1.2 and Oracle 8i etc may have made perfect sense at the time but if you wrote it now you'd at least use the latest versions available or even something different entirely (Scala, mongoDB etc didn't exist then).
A system maintained by professional programmers would be upgraded throughout time and migrated to new technology when required (as Bob suggests). However, this is rarely a decision for the programmers - it's a management decision. To be fair to management, does it really make sense to spend large amounts of money continually upgrading a system if it works? If the programmers and systems team did a good job then no-one might need to make changes for many years. This indicates a high return-on-investment and a good quality system. A Legacy!
Of course when you do have to make changes or additions you have a very different set of challenges compared to modifying a system that is being continually developed. My talk at QCon explores some of these issues, makes suggestions about approaching them and how to leave a good legacy rather than a bad one. If you haven't booked your place at QCon yet then you can use code ANNE100 to get £100 off.