Summary: Legacy Modernization is an important, yet complex topic. Because every business is different, modernization needs vary from one company to the next. Which applications should be modernized? Which modernization approach is right for you? What steps should you take to ensure a successful project? In this guide, we answer all of these questions and more!
Legacy modernization is a complex topic.
After all, every business is unique. Every system is different. Every organization has different needs and goals.
That means there’s no single approach that works for everyone. It means that different businesses have different needs and challenges. What works for one company might not work for another.
Because modernization can mean so many different things, it’s surrounded with confusion. How do you know which approach is best for your company? How do you know if you even need modernization?
In this guide, I’d like to cut through some of the modernization confusion. We’ll take a deep dive into key modernization topics, such as approaches, risks, best practices, and more. Hopefully, this guide will give you a good starting point in your modernization journey. Let’s start things off with a definition of modernization and legacy applications.
What is legacy system modernization?
As business systems age, they have more trouble supporting modern business needs. Legacy modernization involves updating or replacing those outdated systems to better support your business goals.
But, modernization is more than just a modern system. When done correctly, it offers a number of benefits.
“The possible gains are countless,” explains Pavel Ilyusenko, Head of PMO at ScienceSoft. “Modernization lowers maintenance costs and efforts. It helps to make the application re-usable by other internal and external systems, opens it for new features, DevOps and CI/CD enablement, allows for scalability and improves portability and integration potential. It also adds to users’ satisfaction due to software’s improved look & feel and extended reach (web or mobile), and more.”
The big question: What type of systems should you modernize? How do you know if your software is in need of modernization? We’ll answer these questions in the next section.
What are legacy systems?
What is a legacy system? There’s a long answer and a short answer.
Let’s start with the short answer. Gartner defines it as, “An information system that may be based on outdated technologies, but is critical to day-to-day operations.”
Now, for the long answer: Legacy software is not defined solely by age. It’s defined by its impact on your business.
For instance, you may have a 15 year-old system that still meets your needs and integrates with modern technologies. You might also have a 5 year-old system that’s hard to maintain and slows down your organization’s ability to grow and adapt. Which one is a legacy system?
Legacy systems are those that cannot meet your business needs or slows you down in some way. Here are a few signs of legacy software:
- It’s no longer supported by the vendor: Maybe the vendor has gone out of business, or the software is deemed “too old” to support. Either way, you’re stuck with software that you can’t fix or maintain.
- The software cannot take security updates: As security threats emerge, modern software is constantly patched with security updates. But, what happens when security threats evolve to the point where your software can’t keep up?
- It doesn’t integrate with modern software: Can your company take advantage of new hardware and software options? Maybe not…if you’re stuck with outdated applications.
- You regularly use workarounds: Do your applications slow down your business? Talk to your users. Is the software meeting their needs, or do they use workarounds to meet their needs?
- You’re stuck waiting “X” minutes for something to load/run/finish: Applications often grow slower over time. The problem is, users come to accept this as “normal.” For instance, maybe they wait 10 minutes for a report to generate. This may be normal to them, but a giant waste of time in reality.
- Maintenance costs/efforts become excessive: How much time and energy does your IT team spend supporting outdated applications? How much time could your IT department save in the long-term if they replaced the applications?
If I could sum all of those points up into one sentence, it would be this: Legacy software is anything that slows down or harms your organization’s ability to operate. Also, as explained in the next section, legacy software typically adds costs that you may not realize.
Hidden costs of legacy systemsWhy doesn’t every business replace their legacy applications? In my experience, it usually boils down to three reasons:
- They’re locked down. In this instance, legacy systems run the business. Or, past customizations have locked the business into a specific software, or version. Replacing these systems is expensive and risky.
- Lack of resources: Modernizing legacy code is overwhelming. There’s a lot to do, and they don’t have all of the resources to do it.
- If it ain’t broke, don’t fix it. Here’s a line I’ve heard before: “We’ve been using this for 20 years, and it’s still working fine.” Why replace something that still works?
In other words, they don’t see the value. In their minds, the cost/effort needed to replace these systems outweighs the cost/effort to keep them.
But, is that really true? The problem is, these companies don’t realize that legacy application costs go far beyond licensing costs. When calculating the costs of legacy applications, you must consider all factors, such as:
Applications and systems become harder to maintain over time. Every alteration adds another layer of complexity. Over the years, these changes take their toll.
Soon, simple updates turn into time-consuming tasks. A change to one area might break another. You find your business needing more resources for maintenance.
“The dependence on aging technology creates unnecessary expense,” says Lucy Clews – Field Marketing Executive for Application Modernisation at Advanced. “Core legacy business applications, and the infrastructure required to run them, often consume a high share of a company’s IT budget. In fact, there are plenty of statistics that suggest that maintaining and operating legacy applications consumes anywhere between 60% and 80% of corporate IT budgets.
We know that the integration of, and migration from, legacy environments to modern technology platforms is a growing challenge for many organisations around the globe. But, if organizations stand still, they will find themselves in what is commonly called ‘technical debt’. It’s a concept in software development that reflects the implied cost of additional rework caused by choosing an easy solution now, instead of using a better approach that would take longer – leading to a drain on financial, physical and human resources.”
Legacy skills costs
Legacy systems require a legacy skillset. As employees with these legacy skills reach retirement age, your talent pool shrinks. In other words, you’re facing a growing skills gap.
The bigger problem: As competition shrinks, costs go up. Those with legacy skills demand more than those with skills in modern systems.
“Staff with legacy skills are retiring, taking years of experience and vital knowledge with them,” says Clews. “IT leaders are now struggling with resourcing issues, either failing to find employees with the necessary abilities or paying higher costs for those that have them. This expense is only set to increase further as developers with the necessary skills become even harder to find.”
What happens if you’re using third-party software? You don’t need to worry about the dwindling legacy skills pool…right?
Wrong. What happens when the vendor discontinues support? If you don’t want to upgrade to the latest system, you can choose to support it yourself or find a third-party company to provide support. The problem: Both options come with significant expense.
“If you are operating a third-party software, then you always have to be dependent on your vendor for any support and updates,” says Kenny Trinh, Managing Editor of Netbooknews. “Unfortunately, if your vendor has discontinued support for your legacy system, then you have to change your vendor or modernize your legacy system. So, you can prevent your business from losing sensitive data, valuable time and precious money.”
Most legacy systems lack agility because they’re hard to change. Do you need to deliver a new feature or application to the business? Chances are, it’s a time-consuming process.
The result: Projects take longer and run over budget. You keep running into roadblocks during the project. Testing new features requires more time because it’s hard to figure out how everything works together with the old system.
“Even highly qualified software engineers may fail to understand an old legacy system and elicit the requirements properly,” says Ilyusenko. “With legacy techs and too complicated nature of an application, any alterations may be not possible or feasible at all. Since the technical documentation is rarely complete, predictions may be incorrect, which results in project cost overruns, delays to the plan and eventually, the loss of top management support.”
In the world of APIs, integration between two software platforms is usually simple. The problem is, legacy systems weren’t designed for this type of integration.
For instance, suppose you wanted to integrate your application with a web service. This is easy for a modern application. With a legacy application, it’s not so simple. These integrations often require custom (expensive) coding.
“Many organizations are now creating digital transformation strategies, developing new systems of engagement, and providing mobile, Cloud-based applications for customers, business partners and employees,” explains Clews. “Often these new digital applications and devices are required to integrate with legacy, mainframe-based systems of record – and this is where the problem lies.”
Hidden risks of legacy systemsAs explained above, the cost of ignoring modernization can greatly outweigh the modernization costs. The same can be said about risk.
In my experience, many organizations avoid modernization because it’s too “risky”. Their legacy applications just work, and they’re critical to the business. Modernizing them would bring too many risks.
If modernization feels like a risk, I have a question: Is it actually riskier to ignore modernization? Let’s explore a few risks of ignoring modernization.
You risk losing customers (or users)
What happens when you give your customers an outdated solution that doesn’t meet their needs? Or, what happens when you do the same to your internal business users? They’ll find a new solution.
This happens far too often. A business ignores modernization for too long. Their customers become frustrated. When a new option emerges, they leave in droves.
This also applies to IT departments. If an IT department delivers outdated solutions, their users will look for something else. With so many SaaS options available, they’ll likely find something. This is one problem fueling the “Shadow IT” trend–a growing issue in the business world.
You create security risks
As security risks evolve, software must be maintained and patched. If left unpatched, you open your business up to security breaches.
When dealing with custom legacy systems, this creates a major risk. What happens if the original programmers leave? What happens if it’s written in a language that your current programmers don’t understand?
“Legacy systems put many businesses at risk,” says Ilan Sredni, Founder and CEO of Palindrome Consulting. “The two main areas of risk are security and custom programming. We have seen too many situations when custom programming has created a brake system in a company’s growth. The original programmer is no longer available or the language in which the application is no longer supported. Additionally, add that the functionality of an outdated legacy system does not cover all of the security holes that have been identified over the years. Modernizing a legacy system will deliver great benefits in security and functionality.
You risk software instability
Why do many companies still use legacy applications? Stability. The applications “just work”…even if nobody knows how.
The problem: They become increasingly convoluted over time. New features get added, often by different programmers. Workarounds are used when something doesn’t fit right.
Over time, this adds up. Imagine what 10-20 years of changes has on your systems. Soon, no one is sure how it all works and all of the original programmers have left. A change in one area might break something else. Sure, the system still runs. But, it’s like a ticking time bomb. One wrong move, and it could go down.
“A computer program that is used will be modified, and when it is modified its complexity will increase provided one does not actively work against this,” explains Clews. “This is not good news for legacy applications. Many have been around for decades and been modified numerous times by a variety of programmers. As a result, these applications have become ‘brittle’ – they are more difficult to enhance and it is more likely that any changes will cause unknown errors or problems elsewhere in the application – adding to time delays and costs.”
Legacy modernization options
You’ll find many different modernization approaches. Which one is right for you? It all depends on the existing systems and your business goals and needs. Let’s take a quick look at 5 of the most popular methods:
This approach involves applying minimal changes to a legacy system, and then moving that system to another platform. While it doesn’t change the code structure or function, it lets you host your applications on a less expensive platform.
- Pros: Reduces the costs and effort of maintaining your legacy platform (usually a mainframe).
- Cons: It doesn’t make any changes or bring any improvements to your legacy applications.
This approach scrapes the information off of your legacy applications and displays a graphical interface. It makes your old applications look new, while adding some UI features.
- Pros: This is a fast way to make your existing applications appear modern.
- Cons: It doesn’t change the underlying system. You’re still stuck with the same restrictions found in your legacy applications.
With this approach, you rebuild your applications (or application components) from the ground up. You can choose to rebuild the entire system, or just rebuild certain parts of your application portfolio.
- Pros: This approach gives you the features you want, custom-built to your needs.
- Cons: This is an expensive approach, and one that requires a developer skilled in your legacy system’s programming language. The other issue is the fact that it further ties you to your legacy system.
With this approach, you completely replace your existing software systems. You can choose to build new applications from the ground up, or purchase third-party software.
- Pros: This approach leaves you with truly modern applications, built with current technologies.
- Cons: This method is often the most expensive. You’re either paying developers to create a custom solution, or paying for a third-party package.
5. Extend and Surround
With this approach, you gradually extend and surround your legacy applications with modern web applications. You slowly replace specific aspects of your applications, eventually replacing them altogether.
- Pros: This approach lets you modernize gradually at your own pace. It leaves you with truly modern applications, and eliminates much of the risk associated with the rebuild and replace methods.
- Cons: This is a slower approach, as you’re gradually building new applications around your core systems.
Which option is best for your legacy transformation? While I can’t tell you which one works best in all scenarios, I’m partial to the extend and surround method. It lets you breathe new life into existing applications while slowly moving towards your goal of new, modern apps. It lets you work at your own pace, completely eliminating the risk of replacing your legacy apps altogether.
Why do some modernization projects fail?
We’ve just finished exploring the risks of legacy systems, the benefits of modernization, and a few modernization approaches.
But, be careful. Modernization comes with its share of risks if you approach it blindly. Some businesses make key mistakes that derail the entire modernization project. Here are a few common reasons why modernization projects fail:
1. Broken business processes
Before starting a modernization project, ask these questions: What is causing that problem? Is it caused by legacy software or broken business processes?
This is important because legacy software often takes all of the blame. In reality, the real problem might stem from inefficient business processes. Fixing the software while ignoring the business processes is a recipe for failure.
2. Forcing the business to adapt to new software (not the other way around)
Modernizing your legacy system brings massive change to your business. The question: Does the new system adapt to your business, or does it force your business to adapt to the software?
If it’s the latter, there’s a big problem. For a successful modernization project, the software must adapt to fit the current business processes and needs (assuming that those processes are already optimized).
3. Eating the elephant in one bite
Some businesses just want to get it done and over with. They think that replacing the old systems with new systems will make the business magically run better.
The reality: Completely replacing everything at once is a recipe for disaster. Why? It forces employees to change how they work. In some cases, it changes how customers interact with the business. The better approach: Modernize slowly as the need arises.
4. Delivering a modern interface that offers the users a worse experience
Modernization isn’t just a project for the IT department. You must involve the users throughout the process.
The problem: Many businesses ignore end users. The IT department chooses or creates the best solution for their technical needs without understanding how the end-users actually use the software. The result: A modern solution that doesn’t fit the user’s needs.
“I’ve often seen designers and developers construct very attractive interfaces that don’t take into account the shortcuts and habits of long-time users,” says Stephen Fiser of Central Standard Tech. “For example, old systems with large amounts of data entry often have keyboard shortcuts or quick ways to do bulk entries or edits.”
“If your new system doesn’t incorporate those features, you will actually slow down the work being done and cost the company more money (and aggravate your users).”
Best Practices for modernization
I don’t want to scare you with the last section. Yes, there are risks of modernization, just like with any project. However, they can largely be avoided with proper planning. When you follow a few legacy modernization best practices, you dramatically reduce the risk and cost. Today, let’s focus on a few best practices to follow in your modernization efforts:
This is a topic I’ve covered in a recent article, but I’ll summarize the points here:
1. Learn everything about your legacy system
Understand how it works, how it was built, how it connects to other systems, who uses it, why they use it, and how the underlying logic operates. Understand what still works and what doesn’t. Modernization doesn’t mean you must eliminate the existing system entirely. Some parts can be salvaged.
2. Decide if you need modernization or new features
Do you need to start over, or can you work with some parts of your existing system?
In most cases, you’ll see that you don’t need to start from scratch. It’s one reason why I prefer the “extend and surround” approach. As explained above, this involves gradually surrounding old applications with new and modern applications and features. You keep what works and modernize what doesn’t.
3. Decouple components and approach the project by function
Modernization is an overwhelming job if you approach it from a “big bang” standpoint. Separate the project by function. Don’t look at your legacy systems as a whole. Rather, break it up into smaller chunks that you can tackle independently of each other.
4. Examine your business processes
As explained above, modernization won’t fix broken business processes. Use this project to examine your current operations. Are you operating inefficiently? Can you streamline these business workflows before modernizing the software?
“Understand the processes captured in the legacy systems but don’t let them constrain improvement,” says Daniel W. Rasmus, Founder & Principal Analyst of Serious Insights. “New systems mean new opportunities to rethink processes and improve efficiency. That is why business MUST be a partner in the transition. Transition isn’t about putting legacy systems into modern platforms but transforming how the business works leveraging the last tools.”
Hopefully this article helps you with your modernization efforts, and answers any questions you might have. Do you still have questions about modernization? Feel free to comment below!