Maintaining vs. Rebuilding a Legacy System
If you are concerned that your IT systems are holding you back, then you are faced with the options of modifying what you have, buying a replacement product, or rewriting your software.
Every situation is different. Changing the software that runs an organization causes disruption and is a significant cost. It isn’t always warranted.
In this article, we take a look at Legacy software (any software that the current generation of software developers don’t want to play with) and give you the questions to think about when considering maintaining vs. replacing your existing systems.
Business Goals vs Software Constraints
If competitiveness and business enablement are the goal, the first question is how big is your gap between what your software can do, vs what you need both now and in the future?
If you have a gap, is your software and underlying technology even capable of getting you there? Functionality is one component, but what about the processing speed of the system, real-time capabilities, and it’s agility in making changes as and when the business decides? What about supporting new platforms like mobile devices and integrating with new applications?
If your systems can get you there, what degree of effort will it take, and how long will that solution provide value for your business in the future?
Every system has a lifespan. The two main factors that go into determining software lifespan are the relevance of the technology it is written in, and the availability and cost of resources to work on it.
It is harder to maintain an older technology than a new one because there are less skilled resources available, and those resources would rather stay relevant than work on a perceived “dying technologies.”
How relevant is your technology? How easy is it to find skilled talent to make the changes you need? How many more years do you think you will be able to find the quality resources you need to keep your software enabling your business?
If you don’t know, take a look at the number of job openings for your technology vs. modern technologies. Job openings is a leading indicator of where IT resources are heading.
You can also look at GitHub and see the number of projects written for each technology. Another approach is to research the technologies that local software firms and code schools support, or talk to a technology recruiter. Recruiters can tell you the trends they are seeing as it relates to your specific situation.
Like the relevancy of your technology, system documentation is important for getting the longest life out of your system. If a modification to your system means you need to talk to ‘Steve,’ then you have a business continuity risk.
How well is your system documented? How easy is it for new developers to come up to speed and be effective? If you do make changes, what is the likelihood that other parts of your system could be unknowingly impacted because of poorly designed and documented code?
Total Cost of Ownership
Legacy systems can be expensive to maintain. Total cost of ownership includes things like:
- The hardware
- The hosting of the hardware
- The staff that maintains the hardware
- Cost of replacement hardware
- Licensing fees
- Maintenance fees
- Staff that maintains the software
- Any time spent doing manual processes to bridge gaps in functionality
- Costs of errors due manual mistakes
Knowing your total cost of ownership can be eye-opening. It enables you to answer bigger questions like:
- If you went with an alternative product or a custom developed solution with modern web/mobile technologies, using cloud infrastructure, that eliminated manual tasks, how much would it save you?
- How soon would you realize an ROI? What are the additional benefits and their value (happier customers, happier employees, reduced errors, better ability to keep pace with business changes)?
Cost of Change
Legacy systems can be very reliable and closely tied to a business’s processes. Changing this backbone is going to have a ripple effect that needs to be managed.
You need to consider training the staff on the new system, migrating data from the old system to the new system and the issues that may arise, and additional support and planning to manage the transition for the first few bumpy months.
During this time, your company could fall behind and not be as responsive to industry changes.
There are alternative approaches to enabling your business in addition to enhancing what you have, or building a new system from scratch. You may be able to develop new functionality in modern technologies on top of your legacy system, either integrating directly with the database or through APIs that the system already supports.
If so, those could be a viable option to bridge your capability gap while avoiding larger implementation costs and dealing with the ripple effects of change.
Like most things, it really depends on your specific situation. Depending on the importance to your business, consider getting a 3rd party opinion on your options and the cost and risk of each.
6 Items That Are Non-Negotiable When Building Software
Before you get started in developing your software app, discover what is non-negotiable in building a successful software application. In this guide, we share how to build your application on a solid foundation from nearly twenty years of our own personal experience.