Legacy systems can cause all kinds of problems. In this article, we explore some of the challenges of working with older technologies along with some of the reasons you might want to upgrade.
What is legacy in software engineering?
The term ‘legacy’ simply refers to the idea that whatever it’s attached to (such as ‘system’, ‘technology’, or ‘application’) predates the current standard or comes from a time before an important change.
That change could be the invention and widespread adoption of a new coding language (meaning that the older language comes to be considered ‘legacy’) or the merger of two companies (after which the technology in use at the smaller of the two former organizations is slated to be replaced by that of the larger company, making its tech ‘legacy’).
It’s important to note that a piece of software, code, or other technology considered ‘legacy’ may still work perfectly. However, it’s status as ‘legacy’ may mean that nobody is keeping it updated and that it may suffer from compatibility issues with more modern systems / software. The lack of maintenance may also render it unstable.
There is no organization responsible for deciding what does and does not count as ‘legacy’. As such, what is regarded as being legacy technology may shift from context to context.
What does legacy application mean?
A legacy application is a piece of software written for old hardware or an outdated operating system (OS).
For example, an application intended to run on Windows 8.1 with code specific to that operating system would be considered a legacy application if the PC is updated to Windows 10.
Inverting this logic, Windows 8 itself is now regarded as a legacy OS by most within the tech industry as the company responsible for maintaining it and offering users support - Microsoft - ended support for Windows 8 on January 12 2016.
The successor to Windows 8 - Windows 8.1 - is currently out of what Microsoft call ‘Mainstream Support’ as of January 9 2018 and will leave Extended Support on January 10 2023 in accordance with Microsoft’s fixed lifecycle policy.
As an example of the types of compatibility issues software that has entered legacy status can face, Windows 8 no longer supports Microsoft 365 apps. This means that Microsoft’s own flagship programs for everyday tasks such as Microsoft Word and Excel can no longer be run on a Windows PC that hasn’t been updated to Windows 8.1 or later.
This makes most common tasks impossible without resorting to third-party or open source software, something most Windows users would be unwilling to do. In order to encourage users down this path, Microsoft have made updating to Windows 8.1 free for Windows 8 users (Windows 10 still requires a paid software license, as of writing).
A legacy system is a piece of software or hardware that is no longer being updated or improved. It is therefore at the limit of its capacities and no new features will ever be introduced.
The term legacy system differs from legacy application because a legacy system can be either software or hardware based, or commonly a combination of the two. Think of old hardware like a PC from the early 90s running Windows 3.1.
Indeed, the limits of a system are invariably put in place by the processing power of available hardware - more up-to-date software may be too taxing for earlier hardware to handle.
For example, if you tried to update that same 90s PC to Windows 10, you’d fail. It’s highly unlikely a piece of consumer hardware from that era would have either the memory or processing power to support it.
Of course, legacy systems do not just inconvenience individual users. It may be surprising, but organizations with considerable resources such as businesses and governments are actually more likely to be using legacy systems for a variety of reasons.
Legacy systems can face compatability issues with new formats. This applies well beyond the world of music and video.
Why use legacy systems?
If legacy systems underperform compared to more modern alternatives, why would some of the most powerful organizations in the world (such as the US government) continue to rely on them?
The reasons organizations have for continuing to use legacy systems fall into three main groups:
- Capital cost and prior investment
- Organizational inertia
The challenges of migration
Capital cost and prior investment
It’s true that continuing to operate with a legacy system in place can add additional costs. However, these are often of the ‘death by a thousand cuts’ variety and may go unnoticed and unaccounted for on a balance sheet in a way that a single large investment like a large-scale upgrade could not.
For example, if it takes a company’s employees a few extra seconds to accomplish a task they perform a handful of times per day than it would with a modern system, it’s hard to account for how much that costs the business.
Alternatively, updating the legacy system to a newer combination of hardware and software may represent a major cost on the liabilities side of the company balance sheet.
At the same time, the moment the old system is replaced, the company ceases to gain value in return for its prior investment in it. At that point, the legacy system becomes a sunk cost.
However, spreading the value of the prior investment over a broader time by keeping the legacy system in place represents better value for money on a financial report.
This is likely to please shareholders, investors, and the market more broadly (which may be important if stock in the company is being publicly traded) as it appears the decision makers are frugal and unlikely to be financially irresponsible.
By contrast, any potential gains from updating the system to a newer version are purely theoretical at the point when an upgrade is first proposed. Executives may hesitate to invest in newer technology if they’re not certain that the return on the payout will be meaningful enough to offset it.
Relatedly, once any system is in place at an organization, however badly it performs, replacing it can be difficult merely because it represents change.
The longer the system has been in place, the more entrenched it becomes. Staff are used to it, organizational processes account for its idiosyncrasies, and even slight changes when updating to a new system can appear confusing and intimidating when compared to the familiarity of the legacy system.
Leadership may worry that with the introduction of a new system mistakes will creep into workflows, impacting the performance of the company. When you’re responsible for the performance of any business, that’s not a risk you take lightly.
In order to take the plunge and switch to a new system, decision makers will need to be thoroughly convinced of the benefits if they are to overcome their fear.
The challenges of migration
Beyond the normal delays and costs associated with system migration, it may be written in a rarely used or obsolete programming language.
If so, it can be difficult to find programmers familiar with knowledge and skills needed to make the migration. This can significantly increase costs (rare skills are valuable) and delays (finding the right people might take months).
Depending upon the length of time the legacy system has been in place, there may be little documentation available to assist those performing the migration. It’s also possible that the original authors of the code have left the company.
Occasionally, even planning the migration and defining the scope of the project can be a big challenge. This is more likely to be a problem at larger organizations.
Problems caused by legacy systems
In addition to the simple challenge of replacing them discussed above, legacy systems can cause a range of potential problems. This isn’t just an issue for private companies, either.
A recent American Government Accountability Office (GAO) report found that the Pentagon's Strategic Automated Command and Control System runs on an IBM Series/1 computer that hit the market in 1976.
If that sounds potentially dangerous, you’re not the only one who’s concerned. The system is used to “send and receive emergency action messages to nuclear forces.” It uses floppy disks and is hard to maintain because replacement parts are hard to find.
Perhaps nuclear armageddon is the most severe of the potential problems a legacy system might be responsible for.
However, although the system apparently “still works” according to Lt. Col. Valerie Henderson, a Pentagon spokesperson, the responsible department began the process of modernization in 2017.
Other parts of government face issues more comparable to those experienced by large enterprises or other private companies.
For example, the GAO also reported that the Treasury Department uses 1950s-era assembly language code for the individual taxpayer information. At the time of publication, the Treasury Department had no plan in place to modernize the system.
Similarly, the Social Security Administration still uses COBOL - developed in the late 1950s and early 1960s - to decide if a person is eligible for retirement and how much money they’ll get.
The agency claims modernization efforts are "ongoing.”
But what are the risks of sticking with a legacy system?
We’ve already talked about some of the issues, but here’s a more comprehensive list of the problems a legacy system can cause:
Legacy system problems
- Maintenance is expensive
- Data silos
- Tough on compliance
- Weakening security
- Lack of integration
Let’s take a look at each of these problems in more detail.
As with a lot of technology, as legacy systems age the cost can spiral out of control. As fewer and fewer programmers know the required language or parts become harder to find, the cost of each increases.
A time soon arrives when simply replacing the system would be cheaper than continuing to maintain the existing system - even at a significant outlay.
While most modern technology is designed to be easy to integrate, legacy technology often dates from a time before this kind of thinking was widespread.
Simply put, it wasn’t expected that information from within one system would need to be transferred to another.
Even for legacy systems that date from the age of the Internet, many were developed on frameworks that can’t integrate with more modern systems. When data is stuck within a legacy system, it’s in a silo.
Relatedly, legacy systems can cause major compliance headaches. As organizations in more and more jurisdictions become subject to regulations such as GDPR on how they handle personal data, legacy systems do not account for these requirements.
This is because by definition, the functions of legacy systems are fixed. What they are capable of now is all they will ever be capable of.
Although it's the most famous, GDPR is only one of a number of national and regional standards being applied to how data is handled.
As tech progresses, legacy systems are left behind. That includes in the area of security, where data breaches can be extremely costly.
For example, a legacy system might have outdated security features like hard-coded passwords.
The longer a legacy system is in place, the more likely it is to be subject to a security breach.
Most new software doesn’t try to invent the wheel. Instead of the developers trying to recreate the functions of other existing technologies - like building a new Google Maps from scratch, for example.
Instead, most will try to connect their own software to other digital products that can perform the needed function through an integration.
Legacy systems are generally incapable of these kinds of integrations. Either they predate the entire concept or the services they could be usefully integrated with are so many generations ahead that they don’t meet the basic requirements (such as security) to be compatible.
Why modernize legacy systems
Legacy systems pose a range of problems to any organization that keeps them in place.
By modernizing and replacing a legacy system, problems with integration, security, compliance, data siloing, and high maintenance costs can all be reduced or eliminated.
Hello! I'm the head of content at Develocraft. I'm also a startup guy (no joke)! I've worked with a lot of them and learned so much. I'm here to help you by sharing that knowledge. I'm always open to collaborations. Find me on LinkedIn.