Legacy system
A legacy system is an existing computer system or application program which continues to be used because the user (typically an organisation) does not want to replace or redesign it. Many people use this term to refer to "antiquated" systems.
Legacy systems are considered to be potentially problematic by many software engineers (for example, see Bisbal et al., 1999) for several reasons. Legacy systems often run on obsolete (and usually slow) hardware, and sometimes spare parts for such computers become increasingly difficult to obtain. These systems are often hard to maintain, improve, and expand because there is a general lack of understanding of the system. The designers of the system may have left the organisation, leaving no one left to explain how it works. Such a lack of understanding can be exacerbated by inadequate documentation or manuals getting lost over the years. Integration with newer systems may also be difficult because new software may use completely different technologies.
Despite these problems, organisations can have compelling reasons for keeping a legacy system, such as:
* The costs of redesigning the system are prohibitive because it is large, monolithic, and/or complex.
* The system requires close to 100% availability, so it cannot be taken out of service, and the cost of designing a new system with a similar availability level is high.
* The way the system works is not well understood. Such a situation can occur when the designers of the system have left the organisation, and the system has either not been fully documented or such documentation has been lost.
* The user expects that the system can easily be replaced when this becomes necessary.
* The system works satisfactorily, and the owner sees no reason for changing it – or in other words, re-learning a new system would have a prohibitive attendant cost in lost time and money. A.K.A: If it isn't broken don't fix it.
If legacy software runs on only antiquated hardware, the cost of maintaining the system may eventually outweigh the cost of replacing both the software and hardware unless some form of emulation or backward compatibility allows the software to run on new hardware. However, many of these systems do still meet the basic needs of the organisation. The systems to handle customers' accounts in banks are one example. Therefore the organisation cannot afford to stop them and yet some cannot afford to update them.
A demand of extremely high availability is commonly the case in computer reservation systems, air traffic control, energy distribution (power grids), nuclear power plants, military defence installations, and other systems critical to safety, security, traffic throughput, and/or economic profits. For example see the TOPS database system.
The change being undertaken in some organisations is to switch to Automated Business Process (ABP) software which generates complete systems. These systems can then interface to the organisations' legacy systems and use them as data repositories. This approach can provide a number of significant benefits: the users are insulated from the inefficiencies of their legacy systems, and the changes can be incorporated quickly and easily in the ABP software. (At least, that's the intention.)
Note that "legacy" has little to do with the size or even age of the system — mainframes run 64-bit Linux and Java, after all, right alongside 1960s vintage code. In fact, some of the thorniest legacy problems organisations now face are in trying to leverage or replace existing "fat client" Visual Basic code as customers demand reliable Web access.
The term legacy support is often used with reference to obsolete or "legacy" computer hardware, whether peripherals or core components. Operating systems with "legacy support" can detect and use legacy hardware.
It is also used as a verb for what vendors do for products in legacy mode - they "support", or provide software maintenance, for obsolete or "legacy" products.
In some cases, "legacy mode" refers more specifically to backward compatibility.
The computer mainframe era saw many applications running in legacy mode. In the modern business computing environment, n-tier, or 3-tier architectures are more difficult to place into legacy mode as they include many components making up a single system. Government regulatory changes must also be considered in a system running in legacy mode.
Virtualization technology allows for a resurgence of modern software applications entering legacy mode. As system complexity and software costs increase, many computing users are keeping their current systems permanently in legacy mode.
See also:
Legacy port