Our business is the modernization of legacy applications, and we talk about it a lot. Recently, Kathy Bazinet, an IBM Software Technical Sales leader, reached out to us on Twitter and asked:
“I would be really interested in your definition of “legacy applications”. Are you referring to monolithic Java or to COBOL or even something else?”
We thought this was a great question and wanted to share our definition with a broader audience.
How We Define Legacy Applications
You can have a monolithic application written in a modern programming language or environment. Adjectives like “monolithic” or “fat-client” describes how the application is architected. You could argue whether or not a monolithic architecture makes an application legacy.
To us, an application becomes a legacy when what is under the application “layer”—be it a software library or framework, a programming language, or a database—goes out of style or worse, is no longer supported.
Today applications can experience such fate rather quickly. For example, Angular/JS is a modern-day SPA framework from Google that is quite popular. But that technology is now obsolete and has been replaced by another version of that framework renamed to Angular (dropping the JS part). While similar in name, applications are developed quite differently with it. So, a “modern-day” web application developed using Angular/JS is now considered a legacy application.
You can consider a programming language such as PHP to be a legacy web development language as well. Any web applications built with PHP are arguable legacy. Therefore, it’s not only monolithic mainframe or fat-client desktop applications that are legacy. Anytime a software environment or language is no longer supported by its vendor or loses its following, all applications built with it turn into legacy.
Technical debt, therefore, is literally the “drag” that antiquated software platform imparts on its host applications. To modernize these applications, you must first modernize their underlying software platform on top of which they were developed. Once an application is on the modern platform, you are ready to modernize its architecture.
Do you have a modernization question for our team? Shoot us a quick message and we’ll get back in touch with you.
Thanks again to Kathy for the question and the opportunity to share our point of view!