Legacy Software

What is Legacy Software and why does it hurt so much?

Legacy software are programs and applications that where developed in most cases to fill a particular business need, at the time of implementation, and through years of use, they have become part of the integral business environment, users are familiar with the look and feel of the system, and are reluctant to change, “If it ain’t broke don’t fix it!” is a common enough theme, but, the problem is that as the software world has developed and more and more business and institutions are finding support for legacy systems, to be unreliable and indeed a diminishing resource, the costs of support can be truly staggering, indeed, there is a real shortage of programmers and developers who can write a software solution from scratch, document it, de-bug it, develop it, test it, and finally deliver it, modern computer systems may not be able to handle the old software, so older computers are used to run the applications, typically, operating systems like UNIX, although lightning fast and reliable, will tend to diminish as the “Windows World” gets more powerful, users want the power of Linux, but want the look and feel of their old software.

Legacy software can be characterised informally as old software that is still performing a useful job
Legacy software systems are programs that are still well used by the business community or have some potential inherent value, but, that were often developed years ago, using early versions of programming languages.

Often these programs have been maintained and developed for many years by many hundreds of programmers, and whilst many changes have been made to the software, the supporting documentation may not be current, and the programming style archaic. These factors contribute to the staggering cost of maintaining these legacy programs or continuing their development.

Consequently, there is an urgent need to find ways to make these programs more maintainable without disrupting their current use and to “safeguard the information they contain.” Making the programs faster, more reliable, and easier (and cheaper) to maintain.

This implies that it is the preferred solution to discard the software completely, and start again with a new system. Whilst this may be true for some business needs, this may not be appropriate in all cases, for example after:

  • The software represents years of accumulated workforce experience, which is not represented elsewhere, so discarding the software will also discard this knowledge, however inconveniently this is represented.
  • The software may actually work very well, and its behaviour may be well understood by the workforce. A new replacement system may perform much worse, (at least in the early days.) be expensive, and, there are retraining and upgrading budgets to think of, hence, it may be worth recovering some of the “good“ features of the legacy system, and even adding some better ones.
  • It may not be acceptable to demand that users undertake a substantial upgrade for no discernible benefit. Therefore, it may be important to retain the interfaces and exact functionality of the legacy code.

“Users may prefer an evolutionary rather than a revolutionary approach to modernising their software i2 Global have the tools and technology to offer a full software refresh and rebuild, adding functionality, and thought, to modern day programming languages, offering real business benefits, at a fraction of the cost of a new installation, our customers have been astonished at what we have achieved”.