Going the extra mile

The story of our win-win approach. Legacy reengineering for an international premium spirits company.

author photo
Written by Objectivity
Added

Improving performance of an old system

At Objectivity, we know that bespoke doesn’t always mean starting from scratch. We consistently strive to employ existing frameworks and technologies wherever appropriate. It was no different with a recent project for an international premium spirits company.

Our Client’s core IBM i (IBM Power System) bulk stock system has been tracking spirits held in casks, vats or tankers over many decades. The system has been highly customised over time to support on-going operational changes as well as corporate merger and acquisition.

With a proven delivery track-record and a pedigree for application modernisation, Objectivity were engaged to modernise this iSeries system to provide a foundation for future enhancement, and to ensure that it was supportable and maintainable by a new generation of application specialists.

During the modernisation process, the underlying RPG program code was updated to free-format ILE RPG IV, and data storage was refactored into an SQL relational database with a loosely coupled architecture. Based initially on traditional methods, the engineering process was not in line with best practice modern software development and tooling. Applying Objectivity’s wider experience, we adopted a Control Version System (CVS) and Continuous Deployment (CD) to make development more effective and essentially less costly for the Client. Our solution employs the Git version control system and Microsoft’s Azure DevOps services. This solution is not only more cost efficient, but also saves time and reduces the risk of human error by automating many of the manually performed tasks.

Improving performance of an old system
Our win-win approach

Git enables changes to be merged and implemented simultaneously. The RPG source code was added into a Git repository from where it could be subsequently built and deployed in a controlled manner. A release process based on PowerShell scripts was defined. This significantly sped up our work. In addition to supporting the source code, we also manage the database schema via a Git repository in a similar manner. Within Azure DevOps, we have a repository together with test scripts, test results and release management. This permits the release of code and database updates, on-demand, to selected environments. We have successful adopted this approach for one major module of the system, and plans are in place to extend this incrementally throughout the entire system. The Client was already using Azure DevOps for Project Management (backlog), thus our solution helped to improve traceability by connecting product backlog items (PBIs) with code changes.

The adoption of modern processes and tools enabled effective development, merging, and testing. They also provided greater certainty of a clean release with a less error-prone and time-consuming process. With the introduction of automation, significant time-savings have been realised and the requirements for rework have been greatly reduced. Additionally, personnel will require less training on the new system since maintenance has become simpler. As an example, rather than a single release taking an hour or more, it now takes just a minute or two and doesn’t impact other work environments.

If you would like to learn more about our legacy re-engineering capabilities, please contact us for further information.

Top