7.1 Identifying Viable Solutions
In this section we address the top four alternative application modernization solutions: Code Rewrite, Lift & Shift, Code Transformation, and Replacement with a COTS package.
Rewriting code means re-implementing all application functionality in a newer programming language. It results in a new system that is strongly aligned with the BES PMO’s application owner business requirements. However, it is a time consuming and labor-intensive alternative, especially when the rewrite is done from scratch using modern Integrated Development Environments or Low Code/No Code Platforms are used to minimize code development and test. Outsourcing to off shore countries like India and Pakistan lowers rewriting costs for commercial customers, however, because of national security implications of the Air Force PEO BES logistics and business systems the outsourcing solution must be must be in CONUS and executed by US citizens. In an effort to manage the high risk of failure for these projects, implementation of changes needs to be halted during the Code Rewrite, which seriously impacts the AF PMO application owner’s mission and user base. Code Rewrite requires a full specification of the business functional, technical and non-functional requirements. Business operations, underlying technology stacks, Air Force RMF and Assessment and Authorization Cybersecurity policies and procedures, end user functionality and UI/UX look and feel are all subject to change. Testing is therefore incredibly complex. Code Rewrites come with a high risk of introducing new bugs, security flaws, and regression of previously fixed bugs. When rewriting legacy applications cost increases enormously in the short term (3-5 years), business alignment is improved but only in the longer term (3+ years).
Lift & Shift transfers the legacy application to an open system Windows or Linux environment. The application stays as is, with all functionality and underlying software infrastructure safely preserved. Only the underlying hardware is changed from proprietary chip sets (i.e. IBM or UNISYS mainframe, SPARC, PowerPC or Itanium platforms) to open systems x86 platforms. If Code Transformation is used (e.g. mainframe COBOL to Micro Focus COBOL (x86), there are minimal code changes and refactoring. In comparison to Code Rewrite, Lift & Shift is considerably quicker and cheaper. However, the legacy source code underneath stays the same and an emulator is used to enable running the legacy application in the new environment. This does not solve the initial problem but instead prolongs the inevitable. Lift & Shift brings significantly lower project risk than Code Rewrite. Cost decrease is realized in short term with typical positive ROI in around 2.5 years. The preservation of the customer’s legacy application has no impact on business alignment and risk reduction is not achieved due to the same dependency on legacy language skills. This results in limited flexibility in adapting new technology such as mobile and Cloud. To improve innovation another migration is needed to a new environment. As most cost reduction has already been realized with the first migration, building a business case for a second migration will be much harder.
Legacy code automated transformation generates a new code base based on the legacy application which is refactored to use modern architecture design patterns and open system components. Semantically equivalent to the original, the new application is native, readable and maintainable in old and new languages. Similar to Lift & Shift, Code Transformation preserves all the business functionality and applications as is. The difference lies in the replacement of the underlying legacy technology with open systems components. Code Transformation and refactoring eliminates legacy lock-in and legacy language skills dependency and significantly increases the ability to adopt new developments such as Cloud, mobile and microservices.
Code Transformation and refactoring offers about the same cost structure and a longer implementation time than Lift & Shift. The replacement of the underlying system results in a lower infrastructure TCO. Development in the legacy system is fully supported, offering an optional stepping stone to modern programming languages. Since Code Transformation does not change the business functionality, interfaces and end user functions, organizational impact is limited to IT change and regression testing. Business alignment and agility is considerably improved as new technologies allow for faster development, testing and deployment. Code Transformation allows for competitive innovation at the cost and speed of Lift & Shift.
Replacing a current, tailor made mainframe application by a commercial off the shelf application sounds easy. Just purchase a turnkey application (i.e. IBM TRIRIGA, Oracle eBusiness Suite, SAP ERP), configure the App for the use cases, migrate all the data and off you go. However, how standard is the application? How much RICE-W code is required? What mission advantage does the legacy application bring to BES logistics and business operations? How easy is the transition considering this is a migration that will only be done once: for a PMO’s specific business applications, workflows and support environment? At the very least, a package replacement requires a business functional requirements specification, technical specifications and a gap analysis between the current system and the package. In terms of organizational change, this approach is very similar to a rewrite in that every aspect of the organization changes with a significant test effort as a result. A COTS replacement only makes sense when the mainframe application you want to replace is non-differentiating and industry-standard. Extensive customization as RICE-W will drastically increase costs as well as risk. These projects often go over budget and take much longer than expected.