The Challenges of Legacy Software
Legacy software an affect your organization at every level. It will create vulnerabilities, make maintainability difficult, and even make recruiting new devs hard.
Join the DZone community and get the full member experience.Join For Free
We – as a software provider ourselves – see legacy software all the time. It can’t be neglected that a lot of enterprises still run business-critical workflows, customer-facing applications, and other important applications on outdated solutions.
There are many challenges and threats that come with maintaining legacy software.
Maintainability of Legacy Software
While CIOs or CEOs might feel that legacy software is still maintainable in their companies, this might not actually be true. Maintainability and efficient maintainability with happy developers isn’t the same thing. While a piece of software might be still maintainable, per definition, companies neglect the fact that its development team is staffed to maintain an old code base.
This also means that new developers coming into the organization need training to be able to run outdated software. Imagine the amount of time and resources organizations could save when not running old software. Overall, chances are high that code and function are deeply intertwined with each other, instead of using a modular, modern approach.
This will result in extensive maintenance, even for the smallest changes.
Monoliths That Are Hard to Break
Let’s face it. Monolithic systems become too large to manage.
While there’s nothing wrong about big applications, per se, there are various problems in running old monolithic systems. Think about the following ones:
An outage of a non-critical piece of software brings down your entire business application. From our experience, this is one of the biggest challenges companies face when running monolithic systems. Nobody wants additional costs or lost revenue just because of a tiny part in a system failure.
Changing one part of the system unexpectedly affects other parts although they’re unrelated. This usually leads to big surprises in development teams.
Security Vulnerabilities of Legacy Software
While legacy software might work perfectly fine from a user or business perspective, they usually face high security risks. Legacy software is usually no longer supported by the manufacturer. Therefore, a single vulnerability can be of great risk as attackers can access all applications, databases, or server information.
According to an IBM study:
The global average cost of a data breach is up 6.4 percent over the previous year to $3.86 million. The average cost for each lost or stolen record containing sensitive and confidential information also increased by 4.8 percent year over year to $148.
Source: IBM, the cost of a data breach study
Compliance Becomes a Challenge
While security vulnerabilities are a big business thread for enterprises, legacy software are also problematic from a compliance perspective. There are various compliance standards nowadays that require you to properly safeguard your applications.
Think about GDPR for example. With GDPR in place, customers have the right to have their data deleted. While new applications support those cases by default, a legacy software will make legal compliance more time-consuming.
In addition, most software-as-a-service providers have a high standard of service level agreements that can incur business costs in terms of non-compliance (e.g. through extensive downtime of your legacy software).
Running Legacy Software Harms Your Hiring Efforts
If you’re running legacy technology in 2019, this not only becomes a threat to your business but also to your hiring and employer branding efforts. As fewer and fewer programmers and operation managers will have the knowledge of those systems, you’ll face a dwindling talent pool.
In a nutshell, it will become a true challenge to find qualified developers that are willing to maintain your legacy software. While documentation will help to onboard new people to your development team, knowledge is often kept in your developer’s brain. In the worst case, the person that build your legacy software has left the company years ago and no one wants to touch the existing code base. At this point, it’s time to think about migrating your legacy software.
Published at DZone with permission of Thomas Peham. See the original article here.
Opinions expressed by DZone contributors are their own.