Rehost, Rebuild, or Rewrite a Legacy App?

ModLogix
8 min readSep 28, 2020

--

Practical advice on dealing with outdated software
Practical advice on dealing with outdated software

Let’s return to the 2000s when you first developed a software platform that allowed your company to thrive for years. As the days went by, it grew to become an integral part of your business, so the number of operations it was needed for grew, too.

As a result, the system ballooned in complexity; nearly two decades later, it is a labyrinth of tightly coupled services that needs to be modernized if you’re going to stay competitive and keep pace with technology. Thus, you are standing at the crossroads, considering various modernization options and trying to choose the most efficient. How can you save your platform’s value and make it more modern without spending all your precious resources? Let’s find out.

The process of modernization can include various options that match different business goals. The most common of these options are rehosting, rewriting, and rebuilding. Each option varies in its speed of implementation and affordability. For example, rehosting is the fastest and the most affordable way to resolve a legacy software issue, but it can be applied only if the system was built consistently. Otherwise, you’ll have to modernize through a more complex option or even invest in full-system rebuilding.

Aiming to aid your decision-making process, we wrote this article to help you understand each of these modernization options and determine which one is right for you. First, let’s define what each of these terms means and talk about some situations where you might need them.

The Difference Between Rehosting, Rewriting, and Rebuilding

OK, we’re at the crossroads now, and there are three paths we can choose from. They all lead to the same destination-your brand-new system, which is highly maintainable and ready for integration. They just get there in a different way. Now we are going to see what awaits us on each of these paths.

Legacy Software Rehosting

In simple terms, legacy software rehosting, also known as lift-and-shift, is a process of moving a legacy software application to a different platform, avoiding significant changes. This approach solves the issue of expensive maintenance by moving the system from its legacy hardware to modern hosting solutions.

However, in most cases, it is a “stop-gap” option until a new application is developed. Otherwise, it can be the first step toward application rebuilding, as developers can use some of the old parts once the app is placed on the modern platform.

An outdated software system can be rehosted both to virtual machines and new hardware. If you’re migrating the legacy software to virtual machines, the investment is low, so combined with the high success rate and immediate implementation, this option is really attractive.

Besides, the working environment stays the same, and you don’t need to retrain the people who use it. By choosing to rehost legacy software on virtual machines, companies can decrease software maintenance budgets and gain time to prepare for further system improvements.

If for some reason your data needs to be hosted on-premises, you can move from the old mainframes to more modern hardware. This can resolve the issue of low performance as well as expensive maintenance without changing employees’ working environment.

However, in such cases, the software will remain the same, so you can apply this technique only if the system software itself is quite modern. Don’t forget that purchasing new hardware automatically increases the project budget.

Software Rehosting Process Involves

Software rehosting process

When to Use Legacy Software Rehosting

Legacy software rehosting can be an optimal solution, if:

  • affordable price is your priority when it comes to legacy software modernization;
  • you need to reduce on-premises infrastructure costs right away;
  • your server was damaged due to bugs or natural disasters, and you need your applications up now, so you decide to move your software to a modern hosting solution.

Advantages of Legacy Software Rehosting

The task here is to create an environment equivalent to the original source environment. Digging deeper into the topic, let’s see what application rehosting can bring to your business in practice:

1. No recertification or employee retraining

The system is moved unchanged to the new environment, so you can avoid additional checks and learning.

2. Higher performance plus lower maintenance costs

Rehosting speeds up the application and decreases the maintenance budget by using a pay-as-you-go payment model.

3. The risk of a system disaster tends to zero

Moved to the modern platform-as-a-service (PaaS) platforms, a legacy software system is unlikely to crash, especially if it is hosted on a virtual machine provided by Microsoft or Amazon.

Disadvantages of Legacy Software Rehosting

The main disadvantage of rehosting is that this simple approach can’t resolve a complicated case. Therefore, rehosting is mostly used as one of the first steps in the modernization process, and companies subsequently move on to legacy software rewriting or rebuilding.

Legacy Software Rewriting

“Rewriting a business application is as arduous as the old process of republishing a manuscript, if not more so.” TMAXSOFT COMPANY

Legacy software rewriting is redoing the app’s code from scratch. Rewriting legacy software is far more complex than simply rehosting it, as the development team must interpret the existing app’s logic first.

Therefore, there is a need to analyze business processes properly that requires active client participation.

Trying to figure out the architecture of an existing app is not so easy, and trying to understand what is inside a legacy app is far more complicated, as it has often been changing for years without anyone documenting those changes.

As a result, we typically encounter a tangled piece of software, with no idea of the consequences we might face after changing any part of the application.

According to both Standish Group and Gartner reports, more than 70 percent of legacy application rewrites are not successful.

The most well-known case is the rewriting of the old payroll system for Queensland Health in Australia by IBM. The project, estimated at $6 million, failed when it was rolled out, leading to absolute chaos in payments. In the end, the Queensland government spent $1.2 billion to fix the situation.

Just think about it: 70 percent or approximately two out of every three rewriting projects fail. Why? First, source code translation is often done by hand, as we replace or add some features.

Second, apart from code, a team also must translate databases and data. Add one more challenge with differences in hardware and operating systems and we have an answer.

Plus, enterprises usually have several applications connected with each other, so rewriting them all can take years. It sounds like a trailer to the next Mission: Impossible movie.

However, let’s remember that 30 percent of rewriting projects are successful. When it works, rewriting legacy software can transform your business. Let’s learn more about the wonders rewriting can do.

Software Rewrite Process Involves

Software rewriting process

The approach involves making changes in software specifications, so before starting to rewrite the application, development teams should define the purpose of the business process within the organization and the application itself. Then, they identify human activities within the legacy system and operations outside it to insert them into the process (in other words, features to add). At the next stage, engineers streamline automated and human activities inside the app by user roles and validate the model we’ve got. Depending on its results, the model will be improved and verified again and again until it is ready for implementation.

Reasons to Start a Legacy Software Rewrite Process

There are a few reasons why companies decide to take a risk and start the complex rewriting process:

1. The possibility of making changes and adding needed features

This modernization approach allows them to both save their software core value and increase it by extension of app functionality.

2. Resolving performance, high maintenance costs, and inconsistent code issues

Apart from increasing software productivity, rewriting allows you to fix the so-called technical debt, while Stripe and Evans Poll's research shows maintenance of legacy systems and tech debt is the biggest hindrance to developer productivity (42 percent of developer time is spent on it).

3. The opportunity to revise the business process and its efficiency

As you already know, rewriting the legacy system first entails a detailed business process analysis and definition of tasks outside the software system. In this way, you can detect some inconsistencies and make needed improvements.

Advantages of Legacy Software Rewriting and Possible Risks

Rewriting legacy software is a complex process where the development team needs to learn and understand the outdated software first and then create a completely new code that would better satisfy the users’ goals. Although the process takes a lot of time and effort, it has various advantages that we would like to cover.

1. Avoid the Limitations of Legacy System

You can start everything from scratch without the limitations of the previous systems.

2. Lift the Restrictions of the Aging Inflexible Solutions

Aging solutions don’t allow much flexibility, so changing the system to satisfy your business’s new requirements is almost impossible. Rewriting the legacy software would help you create a dynamic solution that would become a great asset to your business model.

3. Future-Proof Solution to Fit in Modern Requirements

Utilizing all the benefits of modern programming languages would simplify integrating new features in the future and allowing more flexibility in a fast-changing business environment. According to recent findings, 30 lines of Java can perform the same operations as 600 lines of COBOL code. Just imagine the advantages of updating the old software will bring.

Disadvantages of Legacy Software Rewriting

The most considerable disadvantage of this approach is its complexity, when the chances of data loss, errors, cost overruns, and extensive delays are high, and one bug in code can lead to a catastrophe.

Today, the chances of a rewriting project being successful is far higher than it was even five years ago because of tangible progress in technologies, moving from monolithic web applications to microservices in the same way we are using the cloud instead of on-prem. We are convinced that in the next decade, rewriting will become far easier for companies to apply.

Shift in technology trends

Despite the mentioned positive improvements in rewriting outcomes, rewriting legacy software is still a risky option, as sometimes a new system can’t fully replace the old one because of gaps in the planning stage. Thus, companies are sometimes forced to run two systems in parallel, which is entirely ineffective, especially after performing an expensive modernization project. Does this mean it’s better to invest a little bit more and turn to the rebuild option? Let’s find out.

Legacy Software Rebuilding

We’ve all noticed that the number of innovations in the world is constantly increasing, so it feels like the planet is turning faster today than it was just 20 years ago. This leads to dramatic changes in the business environment, bringing both new opportunities and new threats.

Read the full article on ModLogix

Originally published at https://modlogix.com on September 28, 2020.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

ModLogix
ModLogix

Written by ModLogix

ModLogix helps organizations move legacy applications to new secure, stable, and scalable platforms. To explore more, please visit https://modlogix.com/

Responses (1)

Write a response