Updating legacy applications can be a daunting task, as they are often deeply ingrained in an organization’s processes and infrastructure. There are a number of ways to approach the problem, but one we find particularly effective for complex legacy systems is referred to as a “strangler approach.” This comes into playas as a solid means of allowing changes to be made to legacy systems without disrupting business operations.
The “strangler approach,” a term coined by Martin Fowler, requires leaving the legacy system in place and addressing areas that need updating slowly, rather than all at once. This approach involves introducing changes gradually over time until a “hard cutover” can be made with minimal risk to the business. To ensure that this process runs smoothly, quality control processes must be in place, including pre-release testing at various stages.
One of the primary ways to introduce changes while retaining the existing system’s functionality is through flow toggles. These toggles enable developers to introduce new pieces of functionality while leaving the old ones in place. This approach allows businesses to switch back to the old method instantly in case of any issues with the new workflows.
Introducing Changes to Legacy Apps
When updating a legacy system, it is important to identify which areas require changes. Three common areas that often require updates are user interfaces, business logic, and data flows. Each of these areas presents unique challenges that must be carefully considered to minimize disruptions to the business.
Updating User Interfaces
Updating user interfaces can be relatively straightforward, but how you proceed depends on how the legacy system is structured. In some cases, the user interface may be embedded in the same base system as the legacy system, which can make it easier to update.
In other cases, the user interface may need to be interlinked between the two systems. For example, if the user usually navigates from screen A to B to C and we’re replacing screen B, we can have screen B live on a new system, with further links to screen C or back to A as required. This allows the flow to remain the same (or be updated as needed) while still retaining pieces of the legacy system.
Updating Business Logic
Updating business logic can also be relatively easy to handle, as there are usually few external dependencies. It is typically easy to isolate the required change areas and write new ones, utilizing the toggling methods noted above. Sometimes these new services will live in new infrastructure with better monitoring, etc.
Updating Data Flows
Updating data flows and introducing new ways of handling data throughout the system is often the most challenging aspect of updating a legacy system. Special care must be taken to ensure that legacy data requirements are not broken, as data dependencies throughout legacy applications can be notoriously difficult to track.
To mitigate risk, the process of using “new” data flows and storage usually revolves around extending existing data structures (even if they’re sub-optimal) to facilitate new functionality, then returning to remove the sub-optimal legacy data structures only after the legacy features have been fully phased out.
Requirements Review and Risk Assessment
When planning changes to legacy apps, a requirements review should be conducted to identify dependencies, and a risk assessment should be carried out to identify how easy it is to isolate required change areas. The ease of refactoring is based on how well existing functionality can be isolated.
Risk mitigation is the ability to isolate areas of change to manage them without causing ripple effects to areas outside of what needs to be changed. Planning changes should consider dependency requirements and risk areas to come up with a strategic approach toward achieving the desired outcome.
In conclusion, updating legacy systems is a critical process that must be undertaken to ensure that businesses remain competitive in their respective industries. The “strangler approach” enables businesses to introduce changes gradually without disrupting operations.
To ensure that this process runs smoothly, quality control processes must be in place, and a strategic approach must be adopted when planning changes. With these measures in place, businesses can update their legacy systems while minimizing disruption to their day-to-day operations.
If you have questions about updating a legacy app for your business, don’t hesitate to reach out. Dymeng works with customers to update and build applications using a variety of development tools. We’d love to connect and see if we can help with your project. Contact us today!