One of my favorite things to do is help organizations think about next generation architectures.
When talking to IT executives about them, one of the more common things I hear is “We need to re-host these damn legacy systems.” This often makes me chuckle and then I share a story:
Back in say 1996, I was chatting with a Las Vegas CIO who was telling me how essential it was to replace the hotel’s damn legacy Property Management System (PMS). The funny thing is: these were the same words he had used just three years prior when he upgraded to his current system.
Seen that movie called Ground Hog Day? Yeah, like that.
All systems are legacy systems. If not the moment they are implemented, then just wait a few minutes.
With this in mind, often the best end-state to wish for is simply one that is even better suited for change.
Scalability and Sustainability in Large Information Sharing Systems
Michael Feathers' "Working Effectively with Legacy Code" defines *legacy code* as code without tests, even if it was just pushed into production. Many enterprise systems in production are thus legacy systems because they are not supported by automated regression tests. They are fragile and as such costly, if not impossible, to modify and enhance.
I see Michael's ideas as supportive of this best end-state wish. Automated test suites aren't free to setup, but can greatly reduce the risk of change in complex systems -- possibly a nice alternative to costly premature replacement?
Posted by: Alex Viggio | December 27, 2010 at 11:05 AM
A legacy application is any application that contains information critical to the functioning of the organization. I have seen WordPerfect legacy systems, Excel legacy system… You name it, if it contains critical data and there is no way/desire to replace it (as yet) then it is a legacy system.
We will always have legacy systems (otherwise there would have been no Y2K crisis). As Jeff mentions, “All systems are legacy systems”. There will always be a newer, faster, more flexible, and easier to use solution available. As soon as you adopt the new system and fail to eliminate the old one you are left with a legacy system. The real problem is that no one remembers the rules of the old system so no one wants to dismantle it (How many home movies do you still have on 8mm, on VCR and on CD?).
Posted by: Jacques Spilka | January 04, 2011 at 11:49 AM
This is true. Once a company is done migrating, testing, and finished training of the new system it has become a legacy system. What are some of these next generation architectures?
Posted by: Ray Holt | January 12, 2011 at 11:22 AM