A significant problem relates to software systems that have been in operation for some time. If a particular software system continues to meet its users’ needs, there may be little or no motivation to replace it, especially if that software is associated with a critical service within a company. Such systems are called legacy systems and typically have the following characteristics:
- developed using outdated techniques
- implemented with old programming languages
- critical to the business
- changed a number of times since their inception
- difficult to understand because of either a lack of documentation about their internal structure or a lack of experience within the group responsible for them
- difficult to maintain because of the above factors.
One option would be to replace an ageing software system with a new one. But the change from old to new can have serious implications for the company involved. It is not just the users who need to be retrained to use the new software. In some companies the whole internal organisation is based around their major software systems. Changing these may require a costly company-wide reorganisation to reflect the new software systems more accurately. There is also the issue of maintaining continuity of service during the changeover and the risk that the new and therefore unknown system may not work – in contrast, the legacy system is a known quantity.
There is an additional twist that makes the problem of legacy systems worse. Staff turnover may mean that there is no one left in the company that developed the software who understands the legacy system enough to continue maintaining it. Even if those who developed the original software system have not left, they may be working on other projects or be unwilling to look after an old system. When faced with the choice of working on a new or an old system, many people prefer to produce something new.
There is every chance that tomorrow’s legacy systems are being built today. We might say that today’s solutions are tomorrow’s problems.