It’s Time For An Application Healthcheck
January 25, 2021 Andrew Ireland
(Sponsored Content) When you get to a certain age – or, perhaps more generously, to a certain level of maturity – it is a good idea to have a health checkup at least once a year to see how your body is holding up and what can be done to deal with any problems that have arisen.
IBM i applications have the same issues as people, as does all software running on any platform – although software is a bit different in that it can be replaced, renewed, rewritten, refurbished or simply left to rot in its swamp of technical debt.
Every company is different, of course, and that often means they have application stacks where some of the code is 20 years or 30 years old – or more – and some of it is new. Many companies have a mix of code with varying degrees of good and bad, written by many different programmers with their own ideas of what is good. And in some cases at IBM i shops, it is a mix of homegrown code and third party application code that has been heavily modified over the decades. In typical IBM i shops these days, anywhere from 30 percent to 40 percent of the application code is dead, meaning it has long since stop being a useful business asset and may not have been executed for a number of years. With potentially millions of lines of code, created over decades and quite possibly by people who have long since left the company, getting a handle on the state of the application code is not an easy task. Nor is it one that most IBM i shops have the resources to try to figure out.
That is why ARCAD has come up with a new service called Application Healthcheck, which launched recently and which can help IBM i shops tackle these and other issues related to the state of their application code. ARCAD is known for creating tools that help companies do a better job programming as well as automagically transforming legacy code into modern easy-to-maintain code and therefore reduce their maintenance debt. And the new Application Healthcheck service leverages these tools, but instead of modernizing or transforming the applications, the tools are part of a service that helps companies assess how good or bad their code is related to modern standards, how much of it is in ancient fixed format RPG or COBOL (somewhere between 60 percent to 70 percent of the code base is typical, with the remainder being more modern free form variants).
The Application Healthcheck service relies on a number of ARCAD tools, including ARCAD Audit, ARCAD Code Checker, ARCAD Observer, and ARCAD Transformer, which are normally licensed by customers as part of their application modernization, maintenance, and new development efforts. Being in the application development tool business so long and helping so many IBM i customers modernize their applications, as well as creating tools to convert applications from one format to another or from language to another means needing to build a vast knowledge base about what constitutes good, modern RPG code. The Application Healthcheck service relies heavily on these tools, sifting line by line through customer code to see how it stacks up and identifying those chunks of the code that represent the highest technical debt and that should be addressed first. It is also useful to know what code can simply be deleted because no one has used it in a long time, and Application Healthcheck can do this, too.
Results of the analysis are visible via a series of ARCAD ‘dashboards’ that reveal instantly how a given application fares against industry-standard metrics. In addition to the static analysis, certain dashboards also compile measurements taken across the DevOps cycle to help identify bottlenecks and process improvements that can be made.
One of multiple ARCAD dashboards: Application Intelligence
In its initial rollout, there are four use cases that ARCAD envisions for the Application Healthcheck service, and they are expected to grow over time. The first four are:
- Quick wins to address technical debt: Many legacy IBM i applications are burdened by areas of code that are overly complex or are monolithic and difficult to maintain. These “hotspots” generate unnecessary technical debt and can drain the profits of the business. The technical debt issue can be daunting, but it can be taken on in small bites instead of trying to swallow it all at once. Application Healthcheck can do a full assessment of the application code base and make suggestions as to what are the most important places to update the code, but also find bits of important code that can be more quickly updated to get some wins to keep the CEO, CIO, and CFO happy and enthusiastic about addressing technical debt. What is needed is a way to isolate risky or expensive areas of code and create a viable remediation plan within the company budget.
- Modernization guidance: Some companies might want to move their applications to the cloud, and others are looking to modularize their monolithic code to make it easier to maintain as well as to make use of a services architecture. Application Healthcheck can offer guidance about how much code reuse there is in the applications and how this can be leveraged as code is modularized.
- Continuous improvement for software maintenance: Application Healthcheck can see where code needs to be improved and also continuously compare new code, updated code, and the decreasing base of old code to best practices to help prioritize the way in which continuous improvement is done in the development organization.
- Stay or go decisions: Let’s face it, more than a few IBM i shops are in this situation every year due to mergers and acquisitions, or upper management making a decision about switching platforms or switching from homegrown to third party applications or even SaaS application services. Application Healthcheck can be used as a tool to help make these stay or go decisions – and obviously ARCAD works every day to help make it possible for customers to confidently keep developing and maintaining their RPG applications and know that they are making the right technical, economic, and emotional choice. If the unfortunate decision is to “Go” then it is important to understand your current business processes and data to help drive the requirement for the new system.
Application Healthcheck requires expert analysis to interpret the output of the various tools from ARCAD that underpin the service, and as such it is not being delivered as a service directly to end users. Rather, ARCAD is looking to partner with application development and services organizations in turn have lots of IBM i customers so they can leverage the service on behalf of their many customers. If you are a application development or third party software developer interested in using the Application Healthcheck service, reach out to me at ARCAD and we can help. If you are an end user organization and you are not sure if you partner offers the Application Healthcheck service, similarly reach out to us and we will help you get in touch with the appropriate partner. If need be, we can always do a custom consulting engagement with an IBM i shop to help if it is warranted. The point is, we want to help and we know how.
Andrew Ireland is Global Alliances Manager and DevSecOps Business Manager at ARCAD Software.