It’s time to start discussing modernizing your IBM i applications. This new subseries of RPG Academy presents some questions to ask yourself and offers some answers.
The “modernization” buzzword has been making the rounds for quite a while, but it has gained traction in recent years among the IBM i community, due to the advent of mobile computing, more-demanding users, and the whole cloud computing paradigm. This and the next few TechTips of this subseries will discuss the different facets of this fuzzy buzzword from my point of view.
Let me start by saying that I’m not a modernization expert. In fact, this buzzword means so many different things that I suspect nobody is an expert in this “field.” However, I have read about and experienced many different aspects of modernization, application restructuring, and MVC, among other interesting topics. I have also talked with experts in areas usually associated with modernization. In all of that, I couldn’t find a clear and concise definition for modernization in IBM i’s context. However, all sources point to a few common aspects of what modernization means:
- Modular and reusable components (programs)
- Modern, graphical user interfaces
- Structured, flexible, and responsive databases
I’ll touch on all three of these aspects of modernization in this and the next TechTips. First, let’s talk about why you should consider modernizing your applications.
Why You Should Give Modernization a Shot
Moving from OPM to ILE is a big step toward modernization, because if you do it right, it will help you build modular and reusable components. If you follow a few standards and guidelines (like the ones I wrote about in the “Write Better Code” subseries), you’ll find that reusing code instead of rewriting it facilitates future maintenance and shortens development time. In other words, it helps cut costs. This is particularly important because it’s hard to sell “invisible” modernization to the top managers of most companies. I say “invisible” because the screens and printouts might remain the same, even though you have rebuilt all or part of the application in a modular fashion. Either managers are in the right mindset or you have to sugar-coat modernization with something they can relate to. Cutting costs is definitely something managers hold close to their hearts (and their budgets, too).
At least in the beginning, it will be hard to calculate the actual cost-savings of ILE because of the learning curve involved—it’s not too steep, but it does exist—and the need for defining your own code standards and guidelines. Fortunately, managers also relate to ballpark estimations. You won’t be able to come up with a very precise figure, but you should have an approximate idea, based on your modernization goals (more on this later).
This is not the only reason to modernize, but it’s probably the easiest way to get top management to support modernization. Be careful, however. If you don’t have experience with ILE and/or modernization processes and you provide management with unrealistically high cost-savings estimates, you’ll not only doom the current modernization initiative, but also future ones!
Modernization Eye Candy
Let’s go over the most visible aspect of modernization: the user interface. One of the most common complaints IBM i developers get from the users, particularly the younger generation of users, is that the user interface is “ugly, hard to work with, and confusing.”
I can see why people who were practically born holding a mouse (or even a smartphone) find a text-only interface ugly. Similarly, the lack of design skills most RPG programmers display (let’s face it; we’re programmers, not designers) leads us to stuff the screens with information, not always in the best of ways.
Even without migrating to web-based front-ends (more on that in one the next TechTips), there are things you can do:
- Read about User Experience and User Interface (UX/UI)—There are literally thousands of free articles online about UX/UI. It’s true that most are written for graphical interfaces, but the principles are there, and you can apply them to text-only interfaces.
- Listen to your users—Listen especially to the younger users and/or the most recent ones in the company. Their experience and ideas might sound a bit alien at first, but if you can relate to them, you might find interesting concepts that you can incorporate into your design standards.
- Go all-in and consider a total UI redesign—A web-based user interface will definitely give your application a modern look. However, this might not be an easy path! There are a lot of products and frameworks you can use, ranging from free to very expensive. I’ll list a few of them later (probably in another subseries), but it’s up to you to decide if this is really the right thing at this moment, because trying to modernize the UI without changing what’s happening under the hood is generally not a good idea. As you’ll see later, it might be better to start with the code modernization—convert to ILE, restructure, and make your code more modular—before even thinking about a new UI. Again, it all depends on what you want to modernize and how much time and money you’re allowed to spend.
This seems like a good place to stop and let you mull over these ideas. Next time around, I’ll talk about restructuring the database and other possible approaches to application modernization.