What Is Code Transformation: Understanding Your Current State and Your Destination

July 1, 2022
code-modernization

What Is Transformation?

Transformation is a complex concept—it can mean many different things depending on who you’re asking.

It could be UI transformation, where an improvement in the user interface provides all end-users a memorable, personalized, and deeply engaging experience. Transformation could also refer to code transformation, which is done to improve the performance of applications using a new language or architecture, or it could be a full digital transformation where the system is entirely modernized for business success.

A transformation could also mean changing a physical process of using pen and paper (e.g., documentation or signing of contracts) into a systematic approach using a computer.

In this article, we’ll talk about how to start the transformation in your business—be it code change, UI transformation, or complete digital transformation.

A Quick Overview of a Transformation Project

 

  1. Discovery

Discovery involves a lot of requirements gathering. Discovery happens in Profound 360, which we’ll discuss later in this article.

  1. UI Transformation

Many organizations come to Profound Logic with IBM heritage, meaning they have many green screen applications. A vital part of the project involves a UI transformation. Profound Logic aims to eliminate those green screens and transform them into a new web-based UI. The new interface can have an RPG or a Node.js backend, which offers flexibility, allowing us to deliver it as a standalone product or alongside code transformation.

  1. Code Transformation

Profound Logic has an automated technology that helps transform RPG code to Node.js. This automated transformation is a Like for Like transformation—we take exactly what you had on RPG and transform it into Node.js. The goal for this transformation is to be exactly the same functionally. This goal is important because we understand that you spent years and decades building your applications to meet your company’s needs. We want to ensure that we’re preserving that heritage—all of the work to develop your applications. Profound Logic wants to make sure that we move what you already have into a more flexible environment.

Although you may think there isn’t much value-added in a Like for Like transformation, Profound Logic will also be doing other things that add a ton of value. One is modularization. A lot of old RPG applications have massive monolithic applications. We will try to break them apart during the code transformation process as much as we can. During this process, every subroutine and subprocedure within that application will be broken up into its own Node.js modules to make them easily reusable. We will look for repeated subroutines and eliminate the redundancies.

When we talk about code transformation, it means touching every single line of code. Therefore, everything has to be tested. As a result, we’ll also look into building automated testing and deployment to make all processes efficient. The automated tests can be used over again going forward.

  1. Application Enhancement

After the Like for Like transformation, we will fill in feature gaps. If there are things in your application that you want to do but weren’t possible in RPG, we can start delivering those new business values. New business values could include reimagining a workflow or adding new features or integrations.

Reasons to Transform

Many businesses undergo transformation for specific reasons. These are:

  1. Mainstream Tools

Businesses want to use mainstream tools, and they may have other areas in the company that use industry-standard testing tools, automation, or deployment. Transforming into a language like Node.js makes those options available.

  1. Larger Candidate Pool

Some businesses have trouble finding RPG developers. Moving to a language like Node.js opens you to a larger candidate pool. There are more Node.js and JavaScript coders, generally. Millions of developers have some experience with JavaScript, as it is the most popular language in the world.

  1. Easily Integrate with New Technology

Some businesses are looking to integrate with new technologies. Node.js is on the leading edge when it comes to new technology. Whatever you’re looking to integrate with, someone has likely done it in Node.js already. You may want to use packages and NPMs with all kinds of integrations and functionalities. You just need to install the packages.

  1. Increased Developer Productivity

All these lead to increased developer productivity. Better tooling, better functionalities through packages and integrations, and more developers to bring better productivity.

Profound 360: Identifying Your Current State and Destination

Unfortunately, many companies just pick a programming language and go from there. When dealing with a multi-year transformation project, you want to have a plan. Otherwise, you will waste time and money and end up somewhere you didn’t intend to be.

Profound 360 is all about making that plan. It’s about understanding these three important things:

  1. Where are you now?
  2. Where do you want to go?
  3. How do you get there?

In Profound 360, there are several things you have to do, and these are:

  1. Align business and technical needs with a thorough IBM i system analysis

Everything starts with an IBM i system analysis. We use automated tools for this information gathering. One of our consultants will be on your system and run code analysis. It will help us figure out what code goes with what. We will look at prefixes, and we will spend time analyzing the quality of the code. There will be newer things that are cleaner and easier to deal with. There will also be an old code someone wrote long ago that people are afraid to touch.

Code quality can be good, but it can still be overly complex, like having code that is 14 levels deep in loops and conditions. Profound Logic will look to see if your code is monolithic, which adds to the complexity of making changes.

No matter how clean the code is, we always find a few programs that we can’t find the source, or we find a source that isn’t even compiled.

Once we have analyzed the code and identified functional areas to break those applications and databases into different groups, we’ll also look at interdependencies. If we’re making accounting changes, what will that affect? Both from a call stack standpoint and the database.

We’ll also look at outside integrations. Is there data coming in or going out to other applications to get an idea of the effects of what we plan to do?

We’ll also check out the architecture of your system. We’ll identify if your system is being pushed to the limits or if it’s underutilized. We’ll talk to you about your cloud strategy, DevOps strategy, performance pain points, system accesses, and preferred end-state architecture.

These are all important for building a roadmap and understanding the risks involved in the transformation.

  1. Understand business process or technology gaps

Moving away from the technical, we’ll want to understand your business processes. This analysis is interview-based. Our team will talk to your stakeholders, such as your IT staff, executives, and end-users.

To do this, we will break it up into small sessions. It can be challenging to get that many people into long meetings. It becomes very inefficient, and things tend to wander. So, we’ll have smaller groups focused on specific topics with shorter lengths of interviews that are easy to schedule. We understand that you have a business to run, so we don’t want to take your staff out for multiple days for things that aren’t pertinent to them. Interviews can be on-site or remote.

  1. Compare architecture and code with gap analysis and vision for the “to be” state

After information gathering, we’ll dive into the “to be” or target state. Recommendations will be based on the analysis. The future state of the application can be transformation, rewriting, replacement, or leave as-is. The future state of the architecture can be on-premises, cloud, hybrid, or other platform options.

  1. Define an agile roadmap that delivers quick wins with low risks

Once we have determined the starting point and the destination, that’s when we build a customized roadmap to realize your goals. It usually involves a multi-year detailed plan, which we identify during the analysis.

We’ll build an agile roadmap to minimize risks, deliver value, and allow concurrent teams to work. While it may not reduce the effort, it may reduce the timeline.

  1. Support your business case and budget planning with input that includes a realistic roadmap, estimated timeline, estimated budget, and risk assessment

The roadmap includes realistic data-driven estimates for effort, timeline, and task dependencies. We will never make guesses. Everything is an educated estimate.

We’ll also identify risk factors during the planning stage. We’ll look at business risks such as the risk of downtime while deploying changes or if something were to go wrong and we need to roll back. We’ll look at things that can cause cost overruns. We’ll identify transformation success risks, including staffing commitment and invalid assumptions.

Profound Logic has mitigation strategies that will reduce risks and ensure success.

Profound 360 Deliverables

This type of project isn’t measured in days. It will take some time to go through proper discovery. On average, it takes between three and six weeks with our customers. This amount could be more extended, but that depends on the scope of transformation.

At the end of the engagement, you will get a comprehensive analysis document that has all the findings of Profound 360. It includes:

  • Detailed picture of the current state
  • Proposed future state
  • Roadmap
  • Transformation and replacement strategies
  • Cost estimates and transformation
  • Timeline estimate
  • Risk assessment

The most important deliverable is peace of mind. Investing a lot of time and money to develop a proper plan after a full-scale discovery will give you peace of mind because you know where you are and where you want to go. You will have an actionable plan to get there and a partner you can trust to help you do it.

About Profound Logic

Profound Logic has focused on bringing modernization solutions to businesses on the IBM i platform for more than 20 years. We lead the industry with integrated solutions for green screen modernization, new application development, mobile development, open-source, and rapid development/low code solutions for IBM i. We were the first to market with a web-based Visual Designer for RPG application development and the first with a solution for RPG Open Access, making it possible to transform 5250 green screens into rich web interfaces completely.

Interested in learning more? See more on this topic here.