Enterprise Integration Zone is brought to you in partnership with:

Robert is a software architect and developer who specialises in modernising complex systems. Occasionally he refers to himself as a code archaeologist. Robert has posted 8 posts at DZone. You can read more from them at their website. View Full User Profile

What is Legacy? A Modern Perspective

02.27.2013
| 2245 views |
  • submit to reddit

A gift or a curse from the past...

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).

Tweet1

and within minutes UncleBobMartin replied:

Tweet2

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.

Published at DZone with permission of its author, Robert Annett. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)