A common decision that software owners are faced with is what to do with legacy systems and databases once they become outdated.
Why invest in a legacy application?
Leaving a legacy application untended will only turn it into a liability. This is because an application goes through a definite lifecycle, with an initial maintenance phase where bugs are fixed and functionality added. After this phase, the owner needs to invest in the application with both resources and time in order to enhance its performance, value and capabilities. If left neglected at this stage, all of the initial investment will be lost. The steps to maintain the productivity of a legacy application could involve legacy integration, legacy application migration or enterprise application integration.
The Four Rs
There are usually four common options before the owner of a legacy system, commonly referred to as the four R's. They are Rewrite, Replace, Re-engineer and Re-use.
Rewrite
If the owner chooses to rewrite the software, the most important decision to be made is what language to use. The choice you make, be it COBOL, Java, VB or C++ is especially important. The wrong choice will result in a lot of wasted time, effort and money. Once you have zoned in on what language to use, you need to train your staff to be conversant and adept with the new language. You could also hire new people, but this will also have its own complications, as they would need to learn the workings of your business and applications and you would need to spend time on training. According to Capers Jones, 27% of rewrite projects are cancelled or rescheduled, 20% are seriously behind schedule, 50% exceed budget and the majority of projects that do manage to reach completion, have only less than half of the planned features. Overall, rewriting does not seem like an encouraging option.
Replace
The second option is replacing your legacy application with a new package. This again entails finding a package that fits in with the requirements of your business. The chances of this happening are very low, therefore, you need to either customize your package in order to fit the business, or actually make changes to your business in order to exploit your package to the fullest. This can turn out to be a workable strategy, provided the package supplier has made a good decision on the choice of development language.
Re-engineer
The third option is Re-engineering. This entails changing the entire business as well as the software application in order to make way for your re-engineered software. The flip side of this option is that there already are existing systems, procedures and methods in place, with technicians trained to work with them. Re-optimizing all these systems is both expensive and hugely time consuming.
Reuse
The final option is reusing your existing legacy systems. This is by far the most sensible, cost effective and time effective option, primarily because your staff is already acclimatized to your system and will need minimal re-training. It is still possible to web enable your legacy systems, graphical user interfaces and mobile computing. The changes made will be incremental, which means much lower costs and time involved in re-training your workforce. The smaller the steps, the easier they are to retrace and start over in the case of a mistake, which means that the risks are also minimized.
So your legacy system will still serve critical business needs, while making use of newer, more efficient technology and programming skills.
Outsource your software services to India
Do you require high quality, customized software services? Why not consider outsourcing to India?
Indian service providers offer flexibility and dynamism in the process by customizing your software solution as per your requirements.
Get a quote! If what you read matches your requirement, then contact us and share your ideas.
|