An Overview of Legacy Software and Systems
What is Legacy Software?
Legacy software is an outdated computer application that is not actively being supported or developed. This outdated software is locked into a specific programming language or operating system that prevents normal maintenance. This is the last stage in the lifecycle of a software system known as End-of-Life software.
This stage contrasts with earlier stages of active development and extended support where the software is actively receiving new features or security updates.
What are Legacy Systems?
Legacy systems can be any combination of unsupported software or hardware.
As an example, consider a piece of software that is written utilizing underlying libraries present in the Windows 2000 Server.
While the software itself is continually developed, a core piece of functionality depends on that library. As hardware progresses and Windows versions change, that library is deprecated by Microsoft in newer versions of the operating system.
Eventually, Windows Server 2000 became a legacy operating system, which can now only function on specific hardware that is no longer produced.
Even though the application written on top of the server is receiving active development, it has not yet been updated to run on modern hardware, thus creating a legacy system.
3 Reasons Why Organizations Still Use Legacy Systems
Here are a few reasons why organizations choose to continue to use legacy systems:
In the Windows 2000 Server example above, the application under development would require extensive recoding or replatforming to not rely on that specific library. That work incurs a cost, and many organizations may not choose to incur those costs.
These costs may come in the form of financial costs such as paying a contractor to make the necessary changes to the application. They may also come in the form of opportunity costs such as the inability to focus on revenue-generating opportunities while fixing this type of technical debt.
While there are costs to migrating from legacy systems, it is important to consider the maintenance costs of legacy systems as well.
2. Lack of Knowledge
Creating a new system that functions just like the old one is a surprisingly difficult task.
Especially with complex systems, it can be difficult to describe exactly what they do. Critical business logic may be embedded in places that are difficult to access or understand. Key stakeholders or software developers who understand that business logic may no longer be present or available.
Even when the business logic is mostly understood, edge cases or hard-coded workarounds may be present and difficult to identify. Some systems have standard business logic for all customers except for a few outliers, which go down completely different code paths. Typically, these were put in for large customers who justified the development effort and could be negatively impacted in a migration. Identifying those code paths in migration can be very difficult.
3. “If It’s Not Broke, Don’t Fix It”
One of the most compelling reasons that legacy systems remain in use is that they function and don’t need a lot of attention. While some systems may function for years without additional maintenance, the more the system ages, the more difficult it is likely to be to fix any issues that may arise later such as security risks or modernization goals.
Legacy System Problems and Costs
Those that choose to continue to use legacy systems will see the following problems arise:
People with Knowledge Disappear
Key stakeholders of a system such as software developers or business owners rarely sit in one place. As these experts move on, the ability to understand, support, extend, and maintain legacy systems can go with them. This represents a risk for any organization becoming dependent upon a system that can’t change, adapt, or grow with the organization.
Integration with Modern Apps and Infrastructure
Businesses today rely on an increasing number of cloud SaaS applications to operate. These SaaS offerings and cloud platforms often require data from internal systems to improve their effectiveness.
- A customer relationship management system (CRM) may need access to customer details stored in a legacy system to enrich the customer experience.
- A finance platform may need access to transaction data within a legacy system.
Integration into legacy systems can be difficult based on technology compatibility and access to key developers as mentioned above.
Costs of Maintaining Legacy Systems
All of the issues mentioned above represent the time and complexity costs of legacy systems, but they also represent real financial costs as well. We know that time is money, but the cost of that time can increase with legacy systems.
As you lose people with specialized knowledge, hiring their replacements becomes more and more expensive. One example of this can be seen in the rising rates of software developers with FORTRAN (a programming language) experience.
Hardware and integration costs also increase as hardware goes out of production and replacements have to be sourced at higher prices.
Security risks are one of the major problems threatening legacy systems. The potential for a data breach or other security issue increases for a variety of reasons:
1. Research Outpaces Support
Just because development or support stops on a system does not mean that hackers stop trying to penetrate those systems’ defenses. Hackers have an increased incentive to find holes in these systems as patching legacy software is less likely, allowing them to take advantage of identified vulnerabilities more broadly.
2. Supported Encryption Methods
Secure sockets layer certificates (SSLs) are a key method of driving encryption across the Internet. In recent years, a variety of critical security issues have been identified in the underlying encryption methods behind SSLs. Many modern tools have increased the minimum encryption levels required to communicate securely. Older systems do not support these encryption levels, making communication between systems difficult.
3. Lack of Vendor Support
In current versions of software, vendors will provide patches or security updates to resolve security issues that are found by hackers and security researchers. Vendors focus support on modern versions of their software, so legacy versions stop receiving the patches and updates.
4. Data Breach and Ransomware Attacks
Legacy systems are susceptible to a variety of security attacks, including stolen data or ransomware. We discussed previously how data security is one of the top data challenges for CIOs, and that still holds true today. With these attacks on the rise in recent years, maintainers of legacy systems should be very mindful of these security risks in managing their plans for modernization.
3 Reasons to Migrate from Legacy Systems to the Cloud
Technology progresses at a staggering rate. Every year, we see new programming languages, platforms, and applications that deliver business value faster than ever.
Cloud technology (such as our VMware Private Cloud) reduces the time spent managing hardware. Managed platforms (such as the Nexcess Managed WordPress Platform) abstract the hardware and application away, allowing creators to focus on running their business rather than managing their website.
The benefits from modernization will be specific to each circumstance, but they are real and tangible.
Some specific security risks have already been discussed. While no technology is completely secure from all threats, operating on modern technologies with active vendor support and frequent security updates is a critical part of mitigating security risks.
Many modern platforms also deliver additional security measures to protect your business. Liquid Web offers a variety of security services and add-ons that are available across many of our hosting products. Tools like DDoS protection and firewalls can improve the security profile of legacy systems running in a cloud environment.
3. Access to Talent
Whether you are hiring or partnering with outside resources, talent in modern technologies tends to be more readily available than older languages common in legacy systems. A PHP (popular scripting language) developer, for example, would be much easier to find than a FORTRAN or Lisp (another very old programming language) developer.
VMware Private Cloud is Compatible With Legacy Software
While a modern technology stack is preferable, there are options available to bring legacy software into the cloud. Liquid Web’s VMware Private Cloud product offers a variety of options for hosting legacy operating systems through the virtualization of older hardware and systems.
This may offer solutions to users who need to modernize parts of their infrastructure but don’t currently have the capacity to reengineer entire systems.
Contact us now to chat with one of our hosting advisors and discuss if any of our products can assist you in modernizing any of your legacy systems.
Wade Wachs is the former Director of Information and Analytics at Liquid Web. Wade has 15 years of experience working with software development teams. In five short years at Liquid Web, Wade was able to implement two BI platforms, collaborate inter-departmentally to design processes and systems to generate actionable data, and has built trust with the executive team to rely on the information provided for crucial business decisions made on a daily basis.
Keep up to date with the latest Hosting news.