﻿{"id":1932,"date":"2023-08-29T10:41:53","date_gmt":"2023-08-29T05:11:53","guid":{"rendered":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/?p=1932"},"modified":"2023-08-29T10:41:54","modified_gmt":"2023-08-29T05:11:54","slug":"infosys-modernization-methodology-based-on-google-generative-ai-a-new-approach-to-modernizing-legacy-code","status":"publish","type":"post","link":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/artificial-intelligence\/infosys-modernization-methodology-based-on-google-generative-ai-a-new-approach-to-modernizing-legacy-code.html","title":{"rendered":"Infosys Modernization Methodology Based on Google Generative AI &#8211; A New Approach to Modernizing Legacy Code"},"content":{"rendered":"<p>Abstract:\u00a0 Legacy code is typically slow and difficult to maintain.\u00a0 Enterprises are always looking to move to modern architecture so that it helps in maintainability, scalability, deployment to cloud, etc.<\/p>\n<p>However, modernization is difficult due to the challenges in extracting business logic from legacy code like Cobol or VB6.\u00a0 This is extremely time-consuming and error-prone.<\/p>\n<p>It is here, that Infosys has experimented with using Google\u2019s Generative AI to expedite the modernization process<\/p>\n<p>Infosys Modernization Methodology based on Google Generative AI has been able to extract business rules, and entities from legacy code, and then implement these in modern languages.<\/p>\n<p>The development effort can be reduced by 50% &#8211; 70% by using the Google Generative AI approach.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Challenges with legacy Code and the need for Modernization<\/strong><br \/>\nEnterprises have lots of legacy code running critical systems.\u00a0 And legacy code comes with its challenges.<\/p>\n<p>1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Monolithic architecture \u2013 This makes maintenance extremely difficult.\u00a0 Fixing bugs, and enhancements is highly time-consuming and error-prone.<\/p>\n<p>2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Scalability challenges &#8211; Legacy code cannot benefit from the advantages of horizontal scaling provided by cloud providers.\u00a0 As there is a limit to vertical scaling, the legacy code has a limit to the number of users\/load that it can support<\/p>\n<p>3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Non-availability of SMEs \u2013 SMEs who understand the legacy code are in short supply<\/p>\n<p>4.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Non-availability of documentation &#8211; This makes the transition to new teams impossible<\/p>\n<p>The aforesaid problems are the prime reasons for Modernization<\/p>\n<p>&nbsp;<\/p>\n<p><strong>The traditional way of modernization<\/strong><\/p>\n<p>There have been two approaches to modernization.<\/p>\n<p>1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 AS-IS Migration &#8211; The legacy code is converted syntactically to the modern language.\u00a0 There are tools available to do this automatically to a large extent.\u00a0 But this is only a quick and dirty approach to modernization.\u00a0 Even though the code is written in modern language, the architecture is still old.\u00a0 It does not give one the benefit of OOPS, microservices, micro front end, etc.\u00a0 Therefore scalability is still an issue with this approach<\/p>\n<p>2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Smart Migration &#8211; To alleviate the problems of As-Is Migration, Smart Migration is desired.<\/p>\n<p>&nbsp;<\/p>\n<p>The classic approach to modernization is below.<\/p>\n<p>a)\u00a0 \u00a0 \u00a0 \u00a0Legacy code SMEs to analyze the legacy code, and manually extract the list of entities, business rules, and interdependencies<\/p>\n<p>b)\u00a0\u00a0\u00a0\u00a0\u00a0 Validate with the business users.<\/p>\n<p>c)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Modern code SMEs to take the list of entities and business rules extracted in step#1, and create new generation code in modern architecture using OOPS, Microservices, Microfront end screens, NoSQL DBs and the like<\/p>\n<p>Step #2a is extremely time-consuming and error-prone.\u00a0 This has a dependency on the skill level of the Legacy Code SMEs.\u00a0 Thus, the process is slow and buggy.<\/p>\n<p>Similarly, Step #2c is once again time-consuming as code must be written from scratch.<\/p>\n<p>&nbsp;<\/p>\n<p>It is here that Infosys has created a modernization methodology based on Google Generative AI to cut down on step #2a and step #2c.<\/p>\n<p>The Infosys Modernization methodology based on Google Generative AI<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_1933\" aria-describedby=\"caption-attachment-1933\" style=\"width: 500px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-1933\" src=\"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/core\/uploads\/2023\/08\/Pic-for-migration-1024x577.png\" alt=\"Migration Workflow\" width=\"500\" height=\"282\" \/><figcaption id=\"caption-attachment-1933\" class=\"wp-caption-text\"><strong>Migration Workflow<\/strong><\/figcaption><\/figure>\n<p>The Infosys Modernization methodology uses Google Generative AI for the below steps:<\/p>\n<p>1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 To automatically extract Entities, Rules, and User stories from Legacy Code<\/p>\n<p>2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Extracted information is vetted by an SME.\u00a0 SME reviews, and updates the items extracted in #1<\/p>\n<p>3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 To automatically generate modern code based on the entities, rules, and user stories reviewed in #2<\/p>\n<p>4.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Modern code SMEs, can review, and edit the newly generated code and baseline the same<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Conclusion<\/strong><br \/>\nThe SME effort involved in extracting entities and business rules from legacy code has been drastically reduced.\u00a0 Similarly, the effort involved in creating modernized code is reduced considerably.\u00a0 Overall, this methodology has slashed the manual effort in the range of 50%-70%.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Abstract:\u00a0 Legacy code is typically slow and difficult to maintain.\u00a0 Enterprises are always looking [&hellip;]<\/p>\n","protected":false},"author":512,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[4],"tags":[],"coauthors":[188],"class_list":["post-1932","post","type-post","status-publish","format-standard","hentry","category-artificial-intelligence"],"acf":[],"_links":{"self":[{"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/posts\/1932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/users\/512"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/comments?post=1932"}],"version-history":[{"count":8,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/posts\/1932\/revisions"}],"predecessor-version":[{"id":1948,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/posts\/1932\/revisions\/1948"}],"wp:attachment":[{"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/media?parent=1932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/categories?post=1932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/tags?post=1932"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.infosys.com\/emerging-technology-solutions\/wp-json\/wp\/v2\/coauthors?post=1932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}