By nature, large applications take several man-years to migrate to new technologies—in other words, multi-year, multi-million dollar efforts involving serious risk. Worse, by the time the project is implemented, there are often further challenges:
- Changes to the application in the interim
- Additional demands in requirements and scalability
- Changes to the business vision
- Lack of alignment with the current business strategy
- Change in end-user demographics
- The new technology has become outdated
- Merger/acquisition of the company
Clearly, CIOs face a herculean task in trying to deliver applications with a cost-optimized architecture that are flexible enough for changing the business needs. The first step to success is realizing that a company’s legacy application strategy must be based on the maturity level of its applications and hardware. There is no one-size-fits-all modernization strategy.
We often read about large modernization projects when they launch, but there are almost no articles about their subsequent success or failure. That’s unfortunate because there are important lessons to be learned. I know of one company that budgeted $10 million for a one-year migration of a mainframe application to a distributed environment. Eighteen months later, the company had spent $25 million and only managed to offload 10% of the workload.&
One way to avoid this scenario is to use the improve methodology, as opposed to migrate or replace. The improve methodology involves modernizing only selected components within a legacy application. By keeping the current technology stack and making improvements to existing code, you lower the cost of legacy licenses.
Examples include upgrading an existing DB from file/hierarchical/network based to relational based, upgrading from the lower form of a language to a higher one, using optimizer tools, or re-hosting existing applications onto a new platform. By improving and fine tuning these systems, MIPS can be properly handled to improve productivity. Of course, it’s important to work on a more complete migration strategy while these improvements are going on.
I'll go into more detail on ways to use the improve methodology in my next post.