A legacy system is one that has been in service for a significant amount of time. Because the system was developed so long ago, some of the technology it uses may now be obsolete. My wife would liken legacy systems to my sense of fashion "outdated". This raises the question; how should you evolve your legacy system? There are four different pathways you can take;
- you can modify business practice so that the legacy software is no longer needed,
- continue maintaining the old system,
- re-engineer the old system or,
- migrate to a new system, such as the cloud.
In this article I will put forward some questions you should consider when deciding which pathway to take.
Modify business practice
Easier said than done. When a business starts noticing that its software is getting in the way of its processes, usually the business is doing well and does not want to change the refined process that has brought it success. There could also be external factors that prevent process change, such as customer demands. Would you be prepared to tell a customer that something isn't possible because you had to change your processes to accommodate your software? Neither would I!
Continue maintaining the old system
Firstly, you should consider the cost of maintaining your current system. This shouldn't be construed narrowly, you should also consider opportunity costs "how much time would the business save if we migrated to a new system"? If this number is substantial then simply maintaining your current system may not be worthwhile.
Conducting an environment assessment is another helpful way of determining whether you should continue with your current system. A number of factors should be considered when undertaking an environment assessment. These include (more can be found in our resources hub):
- the age of the hardware and software,
- it's interoperability with other business systems,
- whether your legacy system supports your business process model,
- the hardware failure rate, and,
- the overall performance of the system.
Once you consider these factors you should have a good idea of whether your current system needs to evolve. If this is the case you can either re-engineer your current system or migrate to a new one.
Re-engineering the old system
If this approach is possible, it may give your old system a new lease on life. As an example, it may be possible to migrate your existing database into the cloud and use middleware as an integration layer. After ensuring that the application functions normally with its existing UI, parts of the application can then be upgraded by creating new endpoints and data structures. New functionality could also be created or replicated within a new application; perhaps also hosted on the cloud.
Legacy migration is the process of moving a legacy application to a contemporary software and hardware infrastructure. It has the advantage of reduced software licensing costs, easier integration with other systems, enhanced application runtime performance and access to more productive development tools. It is also much speedier than completely re-writing your system as the functionality is already familiar. I tend to recommend legacy migration for companies with legacy systems. It's the easiest way to keep your business up to date with technology. If you're not moving forward, you'll inevitably be left behind!
To see some of the do's and don'ts of legacy system migration, check out this blog.