What is legacy software?
Legacy software has often been in use for a long time and is no longer technologically up-to-date. However, such old applications are still used for various reasons, e. B. because they form the basis for newer software.
The word “legacy” describes software or IT systems that have existed for a long time and, from a technological point of view, would have to be replaced by a more modern version. The connection to modern technologies (e.g. cloud) is often only possible with considerable effort and detours – if at all. Nevertheless, they are still in use.
Often it is z. For example, core components that are the basis for more complex systems and are therefore not trivial to replace. Sometimes it’s just not worth it to replace them with a new solution. So they are cared for and integrated into the ecosystem of modern technologies in the best possible way.
What problems do legacy systems cause?
Legacy software usually creates new problems with increasing age, especially when it is operated together with more modern technology. Examples of problems include:
- Increasing effort for care and maintenance:Old systems are becoming increasingly difficult to maintain. One of the reasons for this is that they continue to grow organically over time and thus become confusing for developers. On the other hand, knowledge in development and support can be lost when colleagues leave the company. So if something is to be done on the legacy system, employees have to spend more and more effort familiarizing themselves with the problem in order to solve it.
- Decreasing security:Sometimes legacy software is no longer maintained by the manufacturer, e.g. B. because there has long been new software that is supposed to replace the old system. This means that there are no more updates even for critical security problems. Users use the software at their own risk and risk a growing mountain of security gaps.
- Compatibility problems:Old technology is often not compatible with modern technology on its own. An outdated browser can e.g. For example, many modern Internet sites no longer display correctly and modern operating systems do not automatically work on very outdated hardware. It is quite possible that developers take care of constantly writing new patches for old systems and thus ensure compatibility with newer systems. But in many cases this support is discontinued at some point because there are enough modern alternatives and the effort is not worth it.
Why are legacy systems still in use?
There are a number of reasons why organizations often stick to outdated applications, such as: B:
Loss of knowledge: Some software is so old that the original developers have long since retired. If there has not been a sufficient transfer of knowledge beforehand, the knowledge about the construction of these contaminated sites is often simply lost. Younger generations of developers would first have to learn how to deal with outdated technologies in order to understand what the software does in detail. However, this knowledge would be important if you want to reproduce the range of functions in modern technology. According to the motto “never change a running system”, this effort is sometimes only made when there is really no other way.
Legacy technology: Legacy systems were often developed for hardware that is technically obsolete. This means that the hardware can usually only be addressed with programming languages, which are now considered obsolete and cumbersome. New software would also have to fall back on old technology in order to control the hardware correctly. If the hardware absolutely has to continue to be operated, the legacy software is often maintained for the sake of simplicity.
Cost: If the system continues to work and is kept alive through occasional updates, a new solution is sometimes just not financially worthwhile. It could e.g. B. be a niche product that is only used by a few existing customers, while other customers have long since switched to a more modern solution.
Dealing with legacy software: renovation or new build?
Obsolete software therefore brings with it many problems that repeatedly require attention and tie up resources. There is often an urgent need for action, especially in the areas of security and compatibility with more modern technology. Customers rely on the fact that their usual way of working will continue to function and that the data they have maintained over many years will remain usable. There are different approaches to dealing with this problem. One option is to migrate to a completely new product, another is to partially or completely rewrite the existing software.
One solution is the development of new, independent software to replace the old system. The customer’s data is transferred to this system. In this way, you can switch to a modern application and continue working with the collected data at the same time. A difficulty here is that the data models of both systems have to be kept in mind in order to avoid data loss.
A legacy system often reaches a point at which it can only be maintained and adapted with great effort. If software migration is not a suitable solution, there is still reengineering as an alternative. Parts of the legacy system or the entire system are rewritten.