How Does Software Become Legacy?
Digital transformation is a very trendy topic which always ends up dealing with the theme of legacy. Most of the time, legacy systems are not shown in the best possible light at all. So much so that many predict their end, like in this article from TechRepublic which lists the drawbacks of legacy applications. However, there are other people who are more moderated and who still defend legacy systems, like in this article explaining the theory that any software is legacy.
No matter the point of view of the author of articles about legacy systems, it can be hard to understand everything and make your own opinion on the topic if the latter is not quite clear for you. Therefore, Nanocloud decided to provide you this article, containing the basis of legacy, in order to define the related terms and also to understand what makes a software legacy. Take a guided tour through the legacy topic!
What Is Legacy Exactly?
According to Webopedia: “in computing terms, the word legacy is used to describe outdated or obsolete technology and equipment that is still being used by an individual or organization. Legacy implies that the system is out of date or in need of replacement, however it may be in good working order so the business or individual owner does not want to upgrade or update the equipment. Typically vendor or manufacturer support is not available for legacy systems and applications.” In other words, a legacy software for instance, is a software which still meets the company’s needs and functions very well, but uses technologies or techniques older than the current ones. Therefore, these legacy technologies and techniques are not used anymore and could be modernized in order for the software to not be considered legacy.
What’s more, many other terms often gravitate around the word “legacy”. To be entirely updated and to be able to fully understand what legacy is, we decided to provide you some more definitions of related terms, such as: fat client, web client and mainframe. How do these terms interact with one another and what do they mean?
Fat client and web client
- Legacy software with a HMI (human-machine interface) are called fat clients, or heavy clients. In a few words, a fat client is a software or an application installed, executed and updated locally on a workstation. For example, Outlook and OpenOffice are heavy clients.
- Very often, fat clients are compared to web clients. Web clients are applications and software executed in a web browser, like Gmail for instance. If some think that heavy clients are over, understand that they believe that we should definitely switch to web clients.
One last word regularly used is “mainframe”. Typically, fat clients use on a daily basis central computers called mainframes. Mainframes have been used for a long time, thanks to their impressive storage capacity, their high reliability and their capacity to support hundreds of users at the same time.
In the cloud era, where a major part of companies turn to SaaS opportunities and even consider migrating their whole system to the cloud, others continue to see mainframes as an advantage. This is why IBM continues to produce new mainframes, as this New York Times article reports.
Now that these terms are clearer, there is only one thing left to explain in this article: what are the causes for a software to end up being considered legacy?
Technically, everything that slows or prevents the update of the source code of a software, leads the software to become legacy. Since legacy designates outdated technologies and techniques, time is obviously the main reason why a software becomes legacy. Indeed, new software, techniques and technologies appear very regularly, this is why everything can become legacy in a matter of years, even months.
However, time is not the only cause. Other factors can lead a software to become legacy, or at least accelerate the process.
- Lack of updates
A system not periodically updated and/or tests which are not regularly made can lead a software to rest upon obsolete techniques. Indeed, if a software is not regularly updated, it cannot follow the rhythm of new computing innovations. This lack of regular maintenance can be caused by a lack of time or it can be a choice made by the company, if updating software is not a priority.
Furthermore, if tests are not regularly made, developers cannot be sure whether their work functions well or not. Therefore is it possible for them to hesitate to do any code change because they might fear to break what has already been done. Thus is code not updated and the software becomes legacy.
- Impossibility to update and/or modify the source code
The source code may not be available anymore. For instance, in the case of a company which called on a service provider, it is possible that this latter does not exist anymore a few years later. Because of this, the company does not have access to the source code anymore and therefore cannot update it. The only option left is to completely rewrite the code to replace the old one, which is why most company prefer to leave it as it is.
What’s more, the source code may not be modified because nobody really masters the system. For example, if the developers of a certain system are not in place in the company anymore, and that they did not pass on their knowledge, left an obsolete documentation or none at all, it is very hard to modify their source code.
- High need of the system
This last factor is the least common. In the case of a system which needs a near-constant availability, for example banks, nuclear plants, rail or air traffic etc, it is very hard to interrupt that system. Furthermore, the cost of the conception of a whole new system for that kind of sector is extremely high. This is why, most of the time, companies responsible of such systems would rather keep their existing system, in other words, their legacy one.
We have now laid the basis for you to understand the legacy topic better, and so that you can more simply make your own opinion on the subject, whether you are more in favor of legacy or on the contrary, in favor of modernity.
No matter for which one you side with, legacy is now a reality and thus, the real question is: what to do with your system, applications and software if they are legacy? Should you throw everything away and start all over again, or is it possible to simple modernize the existing? Contact Musato Technologies today to see how we can transform your legacy software into a modern or cloud based system.