As your business critical software applications age, the technology they depend upon also ages, reaches “end of support” and/or “end of life”.
We also find that as applications age, they drift from their original purpose as business requirements change. They frequently build up a high-level of technical debt, becoming harder to maintain and sustain. Often the original developers have moved on and onboarding new support staff can become a challenge. In many cases, support for older applications can become patchy or non-existent.
As the cost, risk, and time to make changes to the application increases, the business users are forced to perform more manual workarounds to complete their tasks. In many cases, they also resort to moving critical functionality into “informal” solutions outside the scope of your IT department which opens up a whole new level of business risk and technical debt.
Rising business operational and IT sustainment costs are clear indicators that your application is on life support and that your business is at increased risk of losing access to critical data and functionality.
At some point you will need to replace the business application – the question is how?
You could re-implement the critical business functionality as a new software application using the latest available proven technology. Whilst this can be a good solution for today, as soon as you go into production, you begin the aging process again. How long until this latest version of the application begins to build up technical debt? How long will the technology last before it becomes obsolete? How long can you support the changing needs of the business?
Virtualizing the UX and CRUD may be a better alternative to building a new application
Most of the business functionality in your software application (>90%) relates to the movement of data between a user’s screen (the rendering of the application user experience (UX)) and data storage (Create, Read, Update, and Delete data (CRUD)). You can virtualize the UX and CRUD functionality as configuration data and implement dynamic page builders to interpret that configuration to render a user experience. This eliminates the need for building a new application that mostly just renders a user experience. It also breaks the dependency between most of your business functionality and the technology that implements it.
The benefits of virtualizing UX and CRUD functionality are impressive at both the application level and at the enterprise architecture level as well. By eliminating the need to build many applications which fragment business functionality and data, we simplify the enterprise architecture and reduce most of the sources of technical debt.