There are many advantages to an IBM i modernization project, especially when compared to a full-system replacement project. Cost is certainly a big consideration, and experience shows that a modernization project will be significantly less expensive.
A modernization project allows a company to use a pragmatic approach by selecting certain segments of the system to update, without changing everything else. These projects are broken down into sprints, which allow great follow-up with clear milestones. The sprints are delivered on short term and allow quick reactions on the received feedback. Stakeholders from the company can see clear progress and are able to present this progress, which brings value for money.
If you are modernizing for the sake of modernizing, I'm sorry to say, but that's not the right approach. It is important for a company to choose the most impactful items first, without losing sight of their primary objective.
When we talk about modernization at EASI we talk about 5 different levels: People, database, backend, user interface and performance.
The foundation on which a modernization project is built is the first level: people. Making sure your development team uses the latest coding standards and modern tools doesn't only allow them to be more efficient on a daily basis, it also ensures that new developers (even fresh graduates) can understand and help maintain the system quickly. To help your people achieve this, start by ensuring your operating system is updated to the latest release. This will allow you to use the latest tools and security capabilities.
Next, jump to the RPG free form coding standard and use a user-friendly editor such as Rational Developer for i (RDi). A final, but very important step, is to make sure a version control system is implemented. By using ARCAD, the development team can control which version is running in which environment much easier and doesn't have to lose time searching for dependencies to recompile anymore. Training your people on a regular basis ensures they know the most efficient and performant ways of implementing new features.
The second level is the database. The heart of every organization. Converting your database to a relational DB2 database won't be an easy job, but the benefits are unmistakable. By using a DB2 database you are able to increase performance, reporting capabilities, connect different applications more easily and define constraints to increase data consistency. After you converted your tables, you will also be capable to use SQL in your RPG coding more effectively. SQL is a language that is known by most developers and helps them to query the database efficiently.
Doing this will once again help integrate new developers in your company.
At a third level, we take into account the backend. All new code should be written in RPGLE, this is the free format coding style of RPG. This new language is very readable and more flexible than its predecessors. Besides using RPGLE, it is a good practice to use SQL to connect to the database. This is more readable as well as performant. If possible, rewrite old coding (using transformation tools) to the newest formats. This can be done systematically to lower the impact on the workload. Finally, make sure a clear coding standard is defined for your development team. This will help future enhancements and makes it easier for the entire team to help on certain features.
The last level is the interface. We advise building a modern and fresh user interface to increase the day-to-day performance of your employees and reduce the learning curve. To build a modern UI, different approaches exist.
- You can connect your frontend to existing stored procedures to maintain the backend reliability and reduce workload.
- Another approach is to do everything with SQL. If your database is reachable, your front-end application can run queries on it to display data.
- You can also choose to work with the API first methodology, where you decide to expose your backend logic as an API. This allows any of your frontend applications to communicate with your backend using JSON web services.
One of the most important aspects of any application is its performance. Turning your legacy green screen applications into a modern, web-based applications won't do miracles if the performance is bad. Today, end users don't accept slow loading speeds or freezing applications anymore. An important factor to look at when it comes to application performance, is the IBM i SQL Engine. Be sure to have a database engineer do regular checkups of the database and the IBM i indexes that are generated to keep your applications running smoothly. Or get it done by a virtual assistant such such as AutoDBE.