Over a million developers have joined DZone.

What is Legacy? A Modern Perspective

· Java Zone

Discover how AppDynamics steps in to upgrade your performance game and prevent your enterprise from these top 10 Java performance problems, brought to you in partnership with AppDynamics.

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.

The Java Zone is brought to you in partnership with AppDynamics. AppDynamics helps you gain the fundamentals behind application performance, and implement best practices so you can proactively analyze and act on performance problems as they arise, and more specifically with your Java applications. Start a Free Trial.

Topics:

Published at DZone with permission of Robert Annett, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}