S. Michael Benson 2017-04-12 02:35:24
Legacy systems are some of the most maligned systems in information technology. Yet, they also contain most of the crown jewels of your business and should be handled carefully and protected. It is true that systems will not run forever, yet I have seen applications from the 1970s that still perform their intended function admirably. Let’s get one thing straight about legacy systems before we delve into modernization. Legacy systems are any of those which are running in your data center today. It is not limited to mainframes or systems that exceed a certain number of years in age. Information technology is constantly changing and what is state-of-the-art today will be your legacy tomorrow. Remember CORBA and DCOM? They were distributed technologies that are legacy today. And legacy isn’t always bad if it works. There are many good reasons to modernize your IT systems but the path is fraught with land mines that could cost you millions, your job and your business. I have seen modernization projects that went on for many years, were over budget and never delivered a single line of code. Some of those companies threw their hands in the air and gave up. Others forced systems into production that were not ready and paid dearly for it. Knowing your options and accurately accessing the risk is important. There is more than one way to accomplish modernization and the path you take may depend on factors unique to your business, what you are specifically trying to accomplish, corporate IT knowledge and your budget. There are many consultants who have a point of view and an area of expertise. Be wary of someone whose experience lies in only one modernization technology. To them, everything looks like a nail. So lets look at some drivers, approaches and challenges around enterprise modernization to help you make an informed decision. Modernization Drivers A 2016 study by Gartner estimated that 70 percent of an IT budget is dedicated to just running the business. This includes operational expenses of maintaining the existing IT systems with no new business services. Companies are being driven by competition to innovate and provide differentiating business services, but have little of the IT budget left. As systems age, they become more brittle and the cost of running the business increases as a percentage of the IT budget. At the same time, older systems are losing support as hardware and software vendors try to stay current and provide capabilities that differentiate them from their competition. As vendor products are sunset, the cost of specialized service contracts to support them skyrockets. By upgrading to newer vendor products, many new features are provided out of the box with lower support pricing. As those vendor products are sunset, the skills pool for those products is reduced. This is especially evident as universities tend to teach newer technologies with little focus on legacy. Programs such as the IBM Academic Initiative are intended to reverse this trend, but there are still too few skills and this is a huge risk for companies trying to maintain older systems. Adopting newer technologies such as mobile, Big Data and real-time analytics are driving companies to spend more to innovate. With both maintenance and new business costs increasing and budgets remaining relatively flat, something has to give. Staying ahead of your competition is not optional so reducing your maintenance spend seems like the only viable alternative. Approaches There are several different approaches you can take to modernize your enterprise. Some offer less cost and risk, but might be just putting lipstick on the pig because the bulk of the legacy system still exists. But even lipstick on a pig might save your bacon since those legacy systems contain the logic that differentiates your business from your competition. If you decide to rewrite your systems, you increase your risk since you have to get it right or your business could fail. Here are four approaches that have different costs and risk associated. The first two are fairly noninvasive, but the last two require you to modify the legacy system. Refacing Refacing an application is the lowest cost and risk of all the options. It does not involve changing the core application but rather just adds a thin layer between the existing application and an updated interface. Many businesses have already done this to web-enable legacy applications using vendor tools that provide much of the automation in creating the interface. New web and mobile applications can be built that use the refaced interface for business logic and data hosted in the legacy application. Refacing an application enables people with web browser skills to easily acclimate to the legacy application with minimal training. One example of a product that provides refacing is IBM’s Rational Host Access Transformation Services. Brokering The next step up from refacing is to provide a separate middle tier that allows you to use legacy applications in innovative ways through a broker technology. Brokering differs from refacing in that business logic and flows can be embedded in the middle tier for new web and mobile applications. Instead of one-to-one refacing to legacy applications, there can be a single front-end application that uses many legacy application interfaces on the back-end to provide a richer, more intuitive presentation to the end user. Brokering can also be used to allow programmatic front-end interfaces to use legacy interfaces that were originally intended only for people to use. There are many examples of brokering middleware that can be used to provide this function. Almost any good enterprise service bus (ESB) gives you the ability to broker legacy applications. Porting Sometimes the problem is not so much the actual application, but the platform upon which it runs. Whether it is hardware or software, IT components have a lifespan. If you decided to look at other platforms to host the application, you should perform a detailed fit-for-purpose architectural analysis since porting from one platform to another rarely yields the intended results. Many applications have been written to optimally run on a specific platform, so you may find performance degraded with a straight port. Another form of porting is converting from one programming language to another while still maintaining the business logic. There are tools that purport to do this business logic porting, but be very cautious about using code generators for anything but very specialized cases since they rarely produce performance optimized code. Rewriting Rewriting code is the last resort since it is the highest risk and most costly. Many modernization efforts to rewrite code have failed for lack of understanding the current systems and how the business logic works. Others have failed because of cost and schedule overruns due to underestimating the complexity. Getting the business logic right is critical but can be difficult since many of these applications were developed 15 or 20 years ago and the people who originally designed and wrote them are no longer in your organization. Reverse engineering the code is error-prone and quality problems can quickly sink your business. There are many tools on the market to help you understand your existing systems before you begin rewriting. Tools like IBM’s CICS Interdependency Analyzer can help you understand the complex relationships in your application so you can decide the best way to begin rewriting. But remember, you are introducing a lot of risk to your business when you do this. Challenges The biggest challenge to modernizing your enterprise is cost. Cost challenges come in many forms from the actual designing and writing of the system to testing and support. Costs can escalate because of down time and lost business if you prematurely put a modernized system into production. Your business can get a “black eye” in the industry if you experience too many outages. I have seen many more rewriting projects fail than are successful because of spiraling costs and missed deadlines. I have seen companies sink millions of dollars into modernization efforts that ultimately fail. Many have decided not to go public since it can be an embarrassment to their business and could result in shortened careers. That is why businesses elect to go with less risky approaches that do not involve complete rewrites. So how can you mitigate risk? You can lower your risk by analyzing and documenting upfront how your business system works today. You need a baseline when testing but many legacy systems lack this kind of critical documentation. It is much better to find deficiencies in your design or code before your customers do. The system may work, but it needs to work accurately and compatibly. This can require a significant upfront investment but it will pay off with a successful project in the long run. And before you start any modernization project, you should also have a comprehensive set of regression test cases to ensure you are not losing critical business functions. It is so easy to miss the nuances of complex systems that have been running successfully in your business for many years. Don’t underestimate testing since that ensures the quality of the modernized system. Don’t underestimate the need for state-of-the-art tooling to help you with the modernization. There are a myriad of tools in the modernization space so you spend time upfront assessing which will best meet your specific needs. Find out from other companies about their experiences with the tools before you purchase them and get training for your personnel on how to use them. These risk mitigation strategies apply no matter which modernization approach you take. Conclusion Because no modernization project is completely without risk, you should not cut corners on the upfront analysis work that must be done to determine the best approach for your business. You may feel that you are being forced into a rewrite of your core systems, but rarely is it necessary to start over. Sometimes refacing, or adding intermediate brokers, will allow you to add new capability while minimizing your risk. Consultants who are experienced in modernization projects can help you with the assessment, but be careful about hiring someone with a single technology skill. Insist they show experience across multiple technologies and make sure your own architects and business analysts are working closely with them. S. Michael Benson retired as an executive IT architect after 30 years at IBM. He held positions in development, architecture, management and technical sales. He holds a Master’s Degree in Computer Science from Marist College. Email: firstname.lastname@example.org
Published by Enterprise Systems Media. View All Articles.
This page can be found at http://ourdigitalmags.com/article/Revisiting+Legacy+Modernization/2761251/399971/article.html.