|
|
Legacy Modernizer
Legacy Security Analyzer MedERP |
Options to Modernize Legacy Systems There is over 1 trillion lines of legacy (old) code that run the operations of large corporations and government agencies in the world today. These client-server applications:
Many of these legacy code sets have been running for years, and during this period of time these code sets have been modified by their owners as they change their ways of conducting business. Unfortunately, in most cases the documentation has not kept pace with the changes, and a great majority of the organizations do not know the full extent of the business rules that are embedded in their legacy code. This makes it all the more difficult to adapt these applications to business models that must change in response to the pressures brought on by the internet, globalization and competition. What are the Options? Re-host: Re-hosting wraps a modern technology layer around the existing legacy platform. Although this appears initially to be a time and cost effective option performance may suffer, maintenance costs will still remain high and without any documentation to refer to, changes are difficult to implement. At best this solution can be considered only temporary. Retire & Replace: If the rules that run the legacy application are inconsequential to the enterprise moving forward, then it makes sense to retire that application and replace it with an off-the-shelf package or one that is written from scratch. Modernize and Transform/Migrate: When the embedded rules of a legacy application reflect the business practices of an enterprise, why re-invent the wheel by re-writing the same application from scratch? This option is not only expensive and risky, but it is a manual process that can take years to complete. Replacing the application with an off-the-shelf package, while less risky and less time-consuming than re-writing or transforming/migrating, it is an expensive and inflexible option, typically providing only 50-80% of the business rule requirements. Additionally, future modifications are not only difficult but expensive to perform. However, unless the application is optimized and modernized during the transformation process, the resulting application will be a mirror image of the source - inefficient, lacking in performance and difficult to maintain. Hence it would appear that if a legacy application is productive to the enterprise, the decision to optimize and modernize that application for shareability and cost-effective efficiencies should be a no-brainer. Unfortunately that is not so. These initiatives are time consuming and risky, and with IT budgets already overly burdened with the cost of running, maintaining and trouble shooting legacy applications, it's a catch 22. The solution to this problem is to mitigate the risk with a phased approach and automate the process as much as possible. Secondly the legacy code cannot be translated line by line as that only creates a maintenance and support nightmare. The ideal implementation plan may be the following: Phase 1: Know what you have by extracting the application's embedded business rules. This is too much data to collect manually. Therefore the first step is to invest in a product that documents the application i.e. automates the discovery and extraction of business rules. Phase 2: If after review of the extracted information, the decision is made to transform the application to modern technologies, define the architecture and platform of the modernized application. Based on the strategy formulated, optimize and modernize the extracted business rules. While there are case tools and business rule engines that generate optimized business rules, these products require the rules to be defined manually within the product before they can be manipulated and optimized. Therefore the second step is to invest in a product that not only extracts the business rules but also provides a platform for the extracted information to be reviewed, optimized and modernized. Phase 3: Transform or migrate the modernized rules to native code or to a product that best serves the target's maintenance and support needs. While there are code generating products that generate target code by translating the source line by line, these products create code "bloat" that makes it difficult for the target to be maintained and supported. Additionally most of these products require the use of run-time libraries or proprietary APIs that have to be licensed on an on-going basis. Therefore the third step is to invest in a product that can take the modernized business rules and generate native code which can be executed without run-time libraries or APIs. Services are offered to perform legacy modernization initiatives but most of it is manual with little automation built-in. Automation products that did exist did not provide end-to-end automation through all three phases of implementation. Hence, use of traditional, primarily manual practices would result in many of these projects taking years to complete, making the initiatives risky, time-consuming and expensive. EvolveWare has developed a product that offers a phased solution to modernize legacy systems. Using a 3-step approach, this product substantially automates each of the three steps, resulting in increased productivity and 50+% savings in time and money. |