Many organizations (especially those ‘legacy’ enterprises in ‘legacy’ industries) spend significant IT budget to maintain their legacy systems, generally speaking, legacy system is one that no longer follows the architectural directions set by the host company. Age is of course a factor, as are technology obsolescence, inability to find/train staff, or systemic limitation.
1. Q1. What are the typical tipping points and factors that turn an IT system into legacy?
Here are some of the indicators of a system having become "legacy:
1) The limitations of the systems architecture start to show and they are no longer able to accommodate changing needs The data on the system is purely archive (old archive) and not of use to the organization in a month-to-month capacity. Legacy systems that can only do batch processing, not real time processing of data.
2) Your requirements or workflow /business process is substantially changed or matured over a period of time, while your system still runs based on your older workflow / business process. The system has gone through numerous iterations over a very large period of time (usually decades) resulting in it being overly complex or cumbersome to maintain. A change in one section of the legacy system may result in uncharacteristic behavior in another section of the system, and despite clear-cut documentations regarding system behavior, unpredictable errors are still found
3) Integration and interoperability with newer systems (collaboration tools) is either not possible or difficult to execute because legacy systems do not make use of industry standards for exchange of data. The ability to add more modern features to the system is difficult because the language on which it is written is no longer in common use. The system is only compatible with older versions of OS/DB/hardware and or propriety OS/DB/hardware that have failed to keep up with the demands of more modern systems
4) If you run out of the technical skills available within your organization or in market to maintain the system. Lack of proper system support due to people skilled in the system having left the organization or having developed skills in other areas or technologies. The technology used in the IT system is totally outdated and support from the vendor is discontinued
5) The hardware system sits is at risk of failure or the internal IT team has a server sat in the server room which none in the team knows anything about, and if it failed, they have virtually nil chance of getting it back online
6) It is not just technology related: When the system decreases your company capability to fulfill business needs, or when doing it is more expensive (effort, licensing, compliance, hardware or any combination of similar things) than alternative solutions you are facing a Legacy.
7) The elements of a legacy system are: built using out-of-favor (or at least depreciated) tools, running on out-of-favor platforms, and/or documentation not (at least mostly) matching the actual system. Those elements suggest you'll have a hard time finding people who can, or want to, work on the system; that your platforms won't be robust or stable enough to support growth and change; and that the cost of understanding the cost/risk of a change will be high.
2. Q2: "At what stage do you do something about it?"
Primarily the word 'Legacy' is in mindset !!! Ideally you start "doing something" from day one. Use current tools & techniques & platforms, document what you're doing, and upgrade incrementally as part of your maintenance plan.
Unfortunately, few CIOs want to look for issues. Because of the cost associated with changing, replacing or modernizing a legacy system (usually running in millions) companies like to ignore this issue, like an ostrich putting its head under ground. But it has become a visible problem now, especially for many companies that have been around for many years (legacy enterprise in legacy industry), numerous techniques exist to give legacy applications a more modern interface or to go deeper, ‘modernization’ takes architectural approach.
Some suggest to embark on a three-step program, "Patch, Polish & Perfect." You patch what you've inherited so it runs OK (and you learn things as you patch); you upgrade, re-host, re-write or "surround" key components to provide shiny new functions; with the time the first two steps bought you, you design and build the new version.
An astute CIO will continually review existing applications and systems in the light of business set technology directions, upgrade 'on the fly' before required, and have a plan to not just ‘carry on’ legacy, but modernize it systematically.