ASNA White Paper: The Decade of Crisis for the IBM i and RPG - part 7
Rewriting IBM i RPG software is almost always a bad idea
Rewriting a large, mission-critical enterprise application is a demanding, challenging task with a high likelihood of failureAs you start to realize that your IBM i RPG software, at least in its current form, is nearing the end of its useful life, rewriting your RPG application is an obvious alternative. We implore you to give this option very serious consideration before you jump into it. Rewriting a large, mission-critical enterprise application is a demanding, challenging task with a high likelihood of failure.
- Our current code is awful.
- We can do such a better job this time.
- We used the wrong programming language the first time.
- We can make it faster and add more features.
- We didn’t understand what we needed then and we do now.
Reasons to rewrite the application are almost always focused on the programmer domain, not the business domainThink about the list above of reasons for moment or two. Reasons to rewrite the application are almost always focused on the programmer domain, not the business domain. Programmers love to write new software, use new tools, and explore unchartered territories. Programmers can tell you many ways rewriting the software will benefit them—however they aren't so good at telling you how rewriting the software will benefit the business.
Asking your programmers if they should rewrite your software is like asking your waiter if the special of the day is any good. The answer is predictable and not really about you
- How quickly can the application generate an ROI for us?
- How will we know the new application is 100% correct?
- How can we best budget resources and create a realistic timeline?
- Will the new version persist our ability to keep our customers and business partners happy?
A good global assessment provides you with the single source of truth you need to make sound decisions about your applicationThinking deeply about such issues starts to reveal your need to do a comprehensive global assessment on your existing application before you make any decisions about it. It is very important to make decisions based on exactly what you have, not what you have according to handed-down kindred knowledge. A good global assessment provides you with the single source of truth you need to make sound decisions about your application.
A rewrite is more than writing code
- How are you going to test your new software? How will you know that it works?
- What are the software’s requirements? This needs to be created in detail, with user stories and a clear picture of the data flows and processes.
- What is the timeline for rewriting the software?
- What resources do you need (ie, programmers, tools, servers, etc)?
- RPG programs don’t live in a vacuum. How, and with what, will you replace the supplemental parts of your system (ie, EDI, telephony, job scheduling, et al).
Estimating the time a rewrite takes
In almost every case, the timeline for delivering an enterprise application rewrite is woefully out of touch with reality
Under the best of circumstances rewriting your RPG application is a multi-year endeavorThe RPG system to be replaced has hundreds of thousands, or even millions, of lines of code. How many programmer years does that represent? Let's assume your shop has four RPG programmers (According to the 2020 IBM i Marketplace Survey 47% of IBM i shops have 3-10 RPG programmers). If your team worked actively on your RPG application for ten years, that application represents 40 programmer years of work. Under the best of circumstances rewriting your RPG application is a multi-year endeavor.
The Mythical Man Month is a highly-respected book that every technical manager should read. Although the book is many years old, its messages and wisdom about project management and herding programming teams remains on-target and well-aimed. It is highly-recommended reading for critical decision makers.
What about your existing database?
The IBM i database is branded as a DB2 database, but it isn't plug-and-play with DB2 on other platformsBefore any programmer writes the first line of code, your database will have to find a new home. Beyond being very large the IBM i database is a database like no other. The IBM i database has idioms and constraints not found in virtually any other database. Even though the IBM i database is branded as a DB2 database, the IBM i version of DB2 isn't plug-and-play with DB2 on other platforms.
Identifying what can be rewritten
Look for components with narrow scope and intent that can be easily isolated and replaced with off-the-shelf software without sacrificing business functionalityAs you ponder replacing your RPG system of record, any component that you identify as not being a core part of your RPG application may be a candidate for a rewrite or replacing with a third-party solution (this may include components such as general ledger or accounts receivable). In this case, the scope is narrow and the intent of the component is easily isolated and defined.
A tough call