When a client has working legacy system, it can seem like an outrageous idea to pitch the development of an entirely new application from scratch. Why fix something that isn’t broken, right? In many other contexts and industries, enhancements and ongoing fixes may be the right solution. But with software, we have to change our paradigm about what we consider to be “broken.” Let’s say you have a vehicle that has been a reliable vehicle for over ten years. It’s in working condition, even good condition. But many of the parts are nearing the end of their life. You bring it into the shop relatively often, and each time you bring it in the repairs are more extensive, costly and time consuming. It’s time to make a critical decision about the future of the car. You know that in the future, potentially in the near future, the damages to the vehicle will become irreparable, and it will make more sense financially to invest in a new vehicle.
The Case for a Rewrite
We have helped many of our clients, large and small, through scenarios and decisions very similar to the one just described. But we aren’t dealing with vehicles, of course, we are dealing with mission-critical business applications. Applications that, if crashed or were down for repairs, could have a massively impact on business outcomes. One such client, we will keep as undisclosed, is the philanthropic arm of one of the largest national quick-service food companies in the US. They had a massive PHP application with over a million lines of code that ran all of the registration, tracking, applications, scholarships and overall management of their philanthropic activities. After partnering with Amadeus to evaluate their application, the client decided that they wanted to move forward with their legacy system and do ad hoc enhancements and bug fixes when necessary. Though at first this was the right path for the client’s budget and business goals, as time went on the repairs to the system became more and more complex and costly, making the system increasingly unreliable and vulnerable.
The repairs were eventually taking so long that our team realized the fixes were just delaying the inevitable: the need to rewrite the existing PHP system with a new, intelligent database design. By redeveloping a superior system we could match the new workflows the client truly needed to run and optimize their business and save them money in the long run.
The benefit of rewriting with new tech is you avoid future technical debt and start to invest in a solution that will achieve your long term strategy and business goals. For an enterprise application which provides an undeniable competitive advantage in a certain industry, a rewrite will drastically improve the maintainability and scalability of the application. Effectively this solution empowers an organization to focus on your business goals and growth instead of expending budget and time trying to keep a broken system running.
Benefits of Upgrading a Legacy App
We understand that rewriting a client’s legacy enterprise application is not only an enormous undertaking, but also a significant financial investment. However, the list of benefits of a rewrite is compelling and impossible to ignore:
- A wider network of technical resources
- A high-performing system without the impending fear of technical issues or crashes
- The ability to reevaluate your business logic and application workflows with a variety of stakeholders in order to better match your company’s goals
- More streamlined enhancements and fixes
Furthermore, a rewrite and upgrade to a legacy system allows your technology partner properly to address the following critical technical considerations:
- Availability – the assurance that a service/resource is always accessible
- Scalability – the ability to support the required quality of service as load increases
- Reliability – the assurance of the integrity and consistency of the application and all of its transactions. The ability to provide a required reliability service level depends on the close coordination of the hardware, networking, operating system, storage subsystem, application framework, and application software.
- Security – the ability to allow access to application functions and data to some users and deny them to others
- Interoperability – the ability of the system to share data with external systems and interface to external systems
- Leveragability – the ability that stored data, programmed logic, and other system resources available anywhere in the enterprise should be accessible from everywhere in the enterprise
- Maintainability – the ability to correct flaws in the existing functionality without impacting other components/systems
- Extensibility – the ability to add/modify functionality without impacting existing functionality
- Manageability – the ability to manage the system in order to ensure the continued health of a system with respect to scalability, reliability, availability, performance, and security
- Portability – the ability of the software to run on a variety of hardware and operating system configurations
- Accessibility – the ability to access system functions through different user agents and in different human languages
Ultimately, we know that a completely rewrite and overhaul to mission critical legacy systems for our larger clients are generally the best approach for long term business success. The real question any client needs to answer is, “what is the business value of my application?” Like the car example, can they afford to continue taking their old trusty to the mechanic for maintenance? Or is it time to take the leap and buy a new, well-oiled machine?
If you have questions about software reviews or upgrading your company’s legacy system, contact the Amadeus Consulting team today!