Break the Chains: Modernize Your Legacy Code

Kim Loomis
6 min readMar 31, 2023

January 13, 2023 by Kim Loomis, Product Owner @ Fathym

In this article:

  • Legacy code is a burden for organizations
  • Large legacy systems have recently been in the news
  • Modernizing code is a necessity for organizations

Legacy Code

Legacy code is a ball and chain.

Organizations are shackled to the software code that runs their offerings. It is the backbone of their products. With the passage of time, the code bases grow rapidly, and the logic built into the code becomes more complex as new features and functionality are released.

But more than likely, some things do not change, and legacy code is what the organization has.

Legacy software code can be a terrible thing because it is often difficult to understand, modify, and maintain. Over time, the original developers may have left the organization, and the knowledge of the system may have been lost.

Additionally, the technology and programming languages used in the software may have become outdated and unsupported.

Furthermore, it may not have been built with current security standards in mind, which could make the software vulnerable to attack.

These factors can lead to several issues, such as increased development costs, delays in implementing new features, and decreased performance.

In the News

Here are some recent examples of legacy code products in the news:

These are big, complicated systems. The concepts/mission of what they do has not changed, even as decades of their existence have gone by.

Southwest Airlines is a major airline carrier in the United States, going to over 100 destinations in country as well as many international locations. On peak travel days, they have over 4,000 departures. Over the 2022 Christmas holidays, Southwest incurred major problems due weather, staffing and its old technology. Thousands of travelers were left stranded.

The FAA helps airports across the country. Planes are at a destination and need to take off. They fly through some air space. They land at their destination. The FAA makes sure all of that happens safely. On January 11, 2023, the FAA stopped flights across the nation as it dealt with a computer glitch. Thousands of flights and tens of thousands of passengers were affected.

Here is a great video discussing the problems these entities have had in the past few weeks.

The IRS works to help the government with its source of revenue. Citizens are required to pay taxes within a defined set of tax rules or laws based on the circumstances surrounding their employment (or lack thereof). Latest news reports have all been about rescinding IRS funding and blocking new funding — all of which challenges the agency and its needs to grow and modernize.

Banks provide customers with a place to store their money and be paid some nominal interest. Customers also have a means to borrow money, take out loans and in return, pay the bank interest. It is an ongoing problem to update these systems.

Code for all these entities was written long ago. It was written in programming languages that may not be widely used today in “new” applications. Consequently, legacy code is present. And it is present in languages like COBOL that was invented over 60 years ago. Because this legacy code still works, there are millions of lines of code still in use today.

The fragility of these systems gets worse as time goes on. In short, modernization is a must.

Modernization

Organizations that want to progress, stay relevant with markets and customers, remain cost effective, improve their performance, and continue to release new features and functionality must seek to modernize their code bases.

Modernizing legacy code is a necessity for several reasons:

  • Security: Legacy software code may not have been built with current security standards in mind, making it vulnerable to attack. Updating the code can help to close security vulnerabilities and protect sensitive data.
  • Compliance: Some industries and regulations require software to be updated to meet certain standards and requirements. Without modernizing the code, the software may no longer be compliant, and the organization may be at risk of penalties.
  • Scalability: Legacy code may not be designed to handle the increased traffic and data of modern systems. Modernizing the code can help to improve the scalability and performance of the software.
  • Maintainability: Legacy code can be difficult to understand, modify, and maintain, which can increase development costs and delays in implementing new features. Modernizing the code can make it easier to understand, maintain and update.
  • Support: The technology and programming languages used in the software may have become outdated and unsupported, which can make it difficult to find developers who can work with the code. Modernizing the code can help to address this issue, making it easier to find developers with the necessary skills.

By modernizing the legacy code, organizations can benefit from the latest technological advancements, improve their software performance and security and be able to maintain it with less effort and cost.

Remove One Shackle at a Time

Modernizing your legacy code is a daunting task, mostly due to one thing “it’s harder to read code than to write it.

Quite plainly, in a great many circumstances, developers would rather rewrite code than try to understand someone else’s work. And the code is old and not comparable to code used in any modern software.

So, your modernization journey begins.

Updating your code base will not happen overnight.

Instead of looking at modernization as this heavy long chain to break, you need to set interim goals for the change. Set a goal to break just one link — or just one piece of the legacy code. Maybe that is a page, a form, a process, or a service. It becomes a lot easier to understand what is involved with breaking just one link. The scope of the work, the schedule and the cost involved are easier to estimate.

This gives you a higher likelihood of success when you choose to gradually address your system part by part.

Modernize one piece of legacy code at a time. Or have multiple teams each work on breaking a link. Choosing to attack and change one piece of your legacy code at a time is a way to lessen this intimidating, costly, time-consuming, formidable scope of work.

By working on something that is measurable and achievable in a brief period, you give yourself a faster pace of success.

Break the chain that has you strapped to your legacy code, but do not break the organization in the process. Learn more about how Fathym can help you migrate to a modern architecture.

--

--