“Well, that is a legacy system.”
This is a phrase that can strike fear into the heart of users, developers, and IT managers alike.
Legacy software is a label that conjures up visions of green text interfaces presented by ossified spaghetti code running on room-filling water-chilled systems that acts like thick molasses dampening any and all attempts at efficiency. And worse, it often refers to a critical business system that few current employees understand and which is so fragile that the whole company could crumble if an unsuspecting intern even takes a peek at the source code.
Fortunately for everyone, the reality of legacy software systems is not so dark. It may even be positive.
Old does not mean it does not work or that there is a problem with it. The adjective legacy is simply defined as “a previous or outdated computer system.” The author of C++ summed up an alternative view of legacy software perfectly:
"Legacy code" is a term often used derogatorily to characterize code that is written in a language or style that (1) the speaker/writer consider outdated and/or (2) is competing with something sold/promoted by the speaker/writer. "Legacy code" often differs from its suggested alternative by actually working and scaling.
- Bjarne Stroustrup, FAQ
For the most part, legacy systems are still used because they work well enough. If they didn’t, companies would simply turn them off. Their existence is an indication that they are essential. They should be regularly evaluated to see if they should be replaced, enhanced, or left alone.
In this post, we review the advantages and disadvantages of legacy applications companies should be aware of, explore the full ecosystem around legacy software, and share some ideas on how to maintain, enhance, or replace your legacy application.
Why people don’t like legacy software
A big problem with legacy software is that it is not “cool.” It is not shiny. This is more of an emotional response, but it is a real one.
When evaluating what to do with your legacy tools, you need to take a step back and logically identify problems with your existing solution that have a negative effect on business.
Here are five common issues to consider:
Does not run on newer hardware
Having to maintain old hardware and operating systems can be a considerable cost. Some legacy tools can not be upgraded to newer computers, so you are stuck managing systems that may be past end-of-life. Virtualization and emulation solutions exist, even for mainframe hardware, but at a cost.
Security vulnerability and compatibility issues
Security breaches are always a possibility with older systems.
A lack of security in your legacy hardware and other systems presents a significant vulnerability that can be difficult to close.
Additionally, obsolete technology can be tough to integrate and/or stay compatible with.
Hard limits on the number of users or amount of data
As your company grows, the amount of data and number of users accessing it increases. Your legacy application may not have the capacity—or, if it is 32bit, even the ability to store the amount of information you have captured over time. It also may not be efficient enough to handle all of the new users that need access.
Difficult to maintain or add functionality
As systems get older, people with knowledge about how to maintain or enhance them move on. In many cases, the application uses an older programming language. The stability of the application program will often be getting worse over time.
The user interface is unacceptable
How we interact with software has changed drastically. The web, mobile, voice, and a focus on user interface design have created expectations that your legacy systems may not be able to meet. Even when the core tools behind the interface are performing fine, if users struggle to use an application the value can’t be realized.
If any of these problems exist with one of your company’s legacy software tools, they’re very likely in need of replacement. It’s probably time to look at finding a way to upgrade or replace the system.
Why legacy software is still around
Before you start ripping out code like you are weeding an overgrown garden, step back and understand the positive impact legacy systems can have.
Knowing the contribution legacy software makes is not just important when deciding to replace it. If you do need to replace a program, the new solution must deliver the same advantages as the old one.
Here are five common reasons why companies keep older tools around:
They work well enough
Many legacy systems are doing their job. The old adage “if it ain’t broke, don’t fix it” may apply, even if you need to run your legacy application on a mainframe instead of cloud computing.
Converting legacy data to new systems is difficult
One thing that may have changed over time is how data is stored and retrieved. Older systems may have algorithms that are no longer common—and all of that data needs to be converted into an entirely different form, stored in cloud computing systems, etc. Fear not: if you don’t have your own internal IT services, there are companies that help with the transition.
They are validated or certified for mission-critical usage
In some industries, software that is critical to the company or to a customer must be certified for compliance with a standard. Or, if the product of the software can impact safety, it must be validated. Recertifying or validating a new system may take too long and cost too much.
Swapping the tool out is too disruptive to the organization
A significant cost of replacing a legacy system is the downtime while transitioning and the loss in productivity as the new software is deployed and learned.
The cost of replacing is greater than the benefits of a new system
The bottom line can be a simple calculation. There is little monetary value in replacing something old with something new. Will the reduction in cost and increase in business be more than the total cost of switching?
Legacy systems are called “systems” for a reason
If you have ever pulled a weed up and found that it ripped up a large amount of dirt and brought other plants with it, then you can imagine what it’s like to try and extract a legacy software application.
We refer to old programs as legacy “systems” because the code itself is just part of what makes a useful tool. In fact, most software programs have an ecosystem of other tools, data, hardware, and users that grow with usage.
As an example, beyond the code itself the ecosystem of a legacy software tool can include:
- Data stored and retrieved by the legacy software
- Hardware that runs the software
- Documentation, training, and support
- Connections to other tools
- Processes developed around the way the tool works
- User expertise
- Management expectations
Enterprise software tools have a significant impact on any business, regardless of whether they are a new SaaS CRM system running on a mobile phone or an ancient barcode inventory tracking system in a warehouse. Before making any changes or leaving an older tool alone, you should have a full understanding of the complete ecosystem around it.
Moving forward with legacy systems – maintain, enhance, or replace?
Maintaining or upgrading legacy systems is one of the biggest challenges facing CIOs. The good news is that it is not a new challenge.
The US Government has been replacing its aging systems for over a decade and is seeing positive results. Also, in many ways replacing a legacy system is easier than creating a new solution from scratch—your organization already knows what does and doesn’t work.
Here are some suggestions on how to best deal with your legacy systems:
- Don’t try to push the new solution too far; big, complex systems are hard to execute correctly.
- Capture the business process in the current system and reuse them.
- Don’t just replace current usage, develop a new system that leverages the old system to meet new business goals.
- Build a new system on a flexible infrastructure to make enhancing or replacing less effort when it becomes a legacy system.
- Understand the complete ecosystem that the current and planned software systems interact with.
- Do not treat SaaS as a magic solution to all problems; a one-size-fits-all system may not meet your needs and may deliver less functionality than the legacy system it replaces.
- Evolve enhancements or replacements that focus on business outcomes, not IT or software development concerns.
Whether you need to maintain, enhance, or replace your legacy systems, the key to success is finding the right software development partner that understands this world.
We here at Zibtek have been working since 2009 to help companies of all types evaluate their existing legacy software and provide robust and efficient replacements. Led by industry veterans, our core mission is to help companies in their digital transformation. To get a feel for our approach, read more:
Sometimes it helps to think of your legacy software as a classic car. Some easy changes and regular maintenance may get it running. Or perhaps you need the help of a good mechanic to replace the engine. After trying that, it’s probably time for a new car. Don’t judge your classic tools by the faded paint and rust on the outside; work with experts to see what is really under the hood and then make an informed decision on how to get increased value for your organization.