Retiring legacy applications – Is it an easy decision?
Recently, I have been involved in few client engagements where they want to retire legacy customer systems and replace them with new products and technologies. In all such experiences I noticed that retiring a legacy application is not as simple as it may sound. Below are some of my observations when I started digging into it.
Why legacy applications become legacy? Some may try to answer this question by saying that an application is legacy if it has gone through multiple cycles of enhancements, numerous bug fixes carried out, heavily customized time to time to meet business requirements, developed number of integration points supporting multiple internal and external processes, IT department is well aware of its idiosyncrasies and the ways to work around them etc.
Isn’t it hard to think of retiring an application with such a historical background? Well…It is…!!! But there comes a time when it becomes harder to bear the high maintenance and customizations costs of such legacy systems. You cannot decide to maintain or retire a legacy application without conducting a cost-benefit analysis and looking at different factors viz. maintenance cost, integration cost and enhancements cost.
Do you easily get people skilled on outdated software to maintain your legacy applications? The most probable answer to this question may be “No”. Even if you find one, you may be paying lot more bucks than skilled people available in newer technologies. You may find more such instances where there might be a scope of reducing the cost. Another example could be the “application outage” or in other words “downtime”. This outage or downtime may be costing you certain amount. Now think about using all this extra money you are spending to use for deploying a new application. The cost of deploying a new application is high but you may not be paying less for maintaining your legacy application. A thorough cost-benefit analysis is must before you can reach to conclusion. Recently, I have come across many such clients where they either want to consolidate many systems storing redundant information or they just want to get away from their legacy applications because of some of the reasons I mentioned above.
Do you also want to modernize your target application? Being visionary and modernizing your target application is another factor to be considered in cost-benefit analysis. SOA is one such capability favoring modernization as it supports the reuse of code across multiple distribution channels. Talking in the context of banking, there can be multiple channels like ATM, Internet Banking, teller in braches etc. that you can use to interact. SOA can work as a middle man and can help organizations maintain legacy applications while providing that extra bit of flexibility as you may not need to build individual applications to serve these distinct distribution channels.
So, can you make a binary decision of retiring legacy applications? Certainly not…!!! There is a gamut of questions you may need to answer which spread across categories from maintenance to integration to modernization…!!!



Comments
Hi Sandeep,
Thanks for sharing your views on this. I was looking for this information.
Posted by: Kevin Johnson | March 26, 2009 1:46 PM
Good information. Thanks for your post
Posted by: Rajnish Aggarwal | March 30, 2009 6:40 PM
A very interesting article. Thanks for sharing.
Posted by: Jason Price | April 2, 2009 10:36 AM
Rather than retiring, applications will either be overhauled or will be stripped off their modules which are inefficient.
The best example can be an automobile. For example; every motor vehicle has its lifetime. With every passing day we also need to account the depreciation in software as well. With new technologies coming in, one has to get upgrades or live with the inefficient systems.
I completely agree with the author's view point and the issues that are raised over here. But the big question is at what point does one need to retire an application? The cost of running a legacy system is usually higher than building a new efficient system. Especially in these uncertain times, there are a lot of entities who prefer to bear the recurring cost rather than making that one time capital investment.
SaaS is a good alternative to overcome the troubles of legacy systems, but it does not necessarily mean that it will fit in all business requirements.
Posted by: Aravind Parvatikar | April 7, 2009 6:15 PM
This has been my subject of study for the last 4+ years. I have observed that whilst there are a number of straight forward cases where migration renders clear business benefit, there are applications which are architecturally sound and are highly efficient yet earmarked for migration in order to satisfy the enterprise architectural decisions.
Such migration projects are painful for the business, the design and delivery teams and have very low rate of success.
Aging of software is a very complex phenomenon. Many times, it matures and becomes stronger as it ages.
Posted by: Dayanand Kathapurkar | April 10, 2009 11:34 PM
I want to comment on "Do you easily get people skilled on outdated software to maintain your legacy applications? " . The answer is no. Perhaps, the reason is different than it has been said. I guess the reason is though it is a rare skill nowadays, it not a well paid job. I feel it is the reason people are shifting to newer technologies. A new entrant in the field with knowledge in newer technologies is paid more than a person working in legacy for more than 10 years experience.
Posted by: Venugopal | April 12, 2009 10:18 PM
Good points by Sandeep. One more thing that is going to set a trend or act as a governing factor now is the financial slump. Companies which were leaning towards legacy retirement are looking the other way around and delaying the decision. Why would you want to go and disturb something that is running healthy? That would be a CIO's question. Is the legacy maintenance cost too much? If so, can you guarantee the same performance and reliability in the new system? Can we invest one time in the new system and see an improvement in costs, productivity? Now, how long before the new system becomes legacy? Is the world moving too fast to accomodate changes? Some of these questions need to be sounded and thought aloud before legacy is shunted down.
All said, sometimes shrugging off the old and entering a new realm gives that extra push to the organization. Its purely a management decision after all.
Posted by: Saro | April 17, 2009 10:42 AM
Thanks everyone for spending few minutes on this blog and leaving very thoughtful comments/questions.
Collating few questions raised by some of you
"At what point does one need to retire an application?"
"How long before the new system becomes legacy?"
"Why would you want to go and disturb something that is running healthy?"
I think the answers to few of these questions lie in my initial blog that you have to do a thorough cost-benefit analysis before you decide to retire/retain your application. If we have a mechanism to continously monitor TCoA (Total Cost of Application) and comparing with what it takes to upgrade or replace with newer tachnologies, it will surely help in taking the big decision.
In these economic times when most companies and even inidividuals have tightened their pockets and decided to focus on savings rather than spendings, the one things which can not be compromised is the Customer's Expectations. Technology in day to day life is now becoming way of life for many. Can you think of a life without internet? Do you again want to go to the era of standing in long queues for submitting your water and electricity bills? Are you not curious of using mobile banking and using internet anytime/anywhere? Legacy systems might be running fine but you may still want to upgrade to new technologies if you try to answer similar relevant questions.
Thanks again for reading this and please continue to pour in your views. These are really helpful for many of us.
Posted by: Sandeep Gandhi | April 20, 2009 11:21 AM
IT Cost/Benefit Analysis considerations
1) Ease of maintenance (downtime cost + resource availability & skills and associated cost)
2) Legacy systems usually run on legacy hardware. Cost to maintain this hardware + o/s licenses and reliability of h/ware (downtime) + data centre cooling + power consumption
Strategic Considerations
4) Architecture considerations
5) Can the money for rewrite be better spent elsewhere – ROI calculation
6) What is the benefit to the customer for rewriting - major consideration?
7) Is the business ready to change, do they consider it important to change?
Posted by: padraic | April 22, 2009 10:46 AM
There are a number of reasons why a Legacy system cannot be totally retired, most of which have been discussed above. That is a reason why transition projects today are using new technologies as front end / middleware, including small databases to log end user data, but still data getting posted at the end of the day in the legacy system. Any query from the end user would access data from the legacy system and gets displayed to the user (the advantage in this mixed architecture being the end user / end user application developer need not know the legacy system architecture or programming). The robustness that a legacy system gives in terms of its uptime, dependancy, scalability and portability (if that aspect has been thought of during the design phase of the application) is unmatchable.
Rather than completely retiring & burying a legacy system, it would be wise to continue using it for what it is famous for, the 'R' factor ('reliability') and front end applications providing the flexibility for the end user.
Posted by: c r bala | April 22, 2009 10:51 AM
Thanks Sandeep, for sharing your ideas.
Posted by: Rammanoj | April 26, 2009 8:34 PM