What is a legacy system?

 

Investment in information systems is usually considerable so most organisations are motivated to make them last a long as possible. A lot of large systems are in use for up to 20 years, though 10 years is more usual. The important point is that these old systems are still used to support critical business processes, and if the system failed then the performance of the business would be adversely affected. This is what is known as a legacy system.

 

A lot of these systems are used in a way which is different from what was originally intended. Changes in the working environment means that the systems must also change over time if they are to remain of value to the organisation. So legacy systems often incorporate a lot of changes, including modifications to the original program code and fuctionality.

 

On the face of it, it might seem easier to replace a legacy system rather than try and understand what is going on. But this can be risky for the following reasons:

 

  1. 'Small' changes to systems are rarely documented, therefore it is difficult to create a new system specification without thoroughly interrogating the existing system.
  2. A large proportion of business processes have evolved to accommodate the operation of the system and any changes to the system may impact on the workings of the organisation.
  3. Critical business rules may be part of the system, embedded deep in the code, which might not be immediately visible or documented.
  4. The development of new software is generally riskier than buying an off-the-shelf package anyway.

 

It follows that the more legacy systems an organisation has, there exists a greater potential for increased maintenance costs in the future. However, complete replacement is fraught with a different set of difficulties.

 

 

 

 

Reference: Software Engineering, Sixth Edition, Ian Sommerville, Addison Wesley, ISBN 0-201-39815-X

 

Review Questions

 

Test your understanding of this topic with the following questions.

 

What is a  legacy system?

 

 

What difficulties are likely to arise when different components of a legacy system are written in different programming languages?