decorative image for blog on ibm i merlin and how it impacts php -- shows computer with users discussing ibm i merlin
September 2, 2022

IBM i MERLIN and What it Means for PHP Teams

IBM i

IBM has introduced a new development paradigm that is designed to help development team move faster down the modernization road called IBM i MERLIN.

In this blog, I'll give an overview of IBM i MERLIN, what it is, how it works, and how it might impact teams working with IBM i and PHP.

What Is IBM i MERLIN?

MERLIN is an acronym that stands for Modernization Engine for Lifecycle Integration.

Okay, the acronym is a bit of a stretch, but IBM has always struggled with naming. Effectively, MERLIN helps IBM i shops migrate their development from Waterfall, monolithic, RDi/SEU to a more modern Agile approach. IBM has done a very nice job describing the solution on their website so I’d suggest heading there for more details and the latest information. There’s even a well-crafted Q&A section that is designed to address just about every possible question that might come up, including pricing. 

Key IBM i MERLIN Features

The key features found in IBM i MERLIN, as noted above, are agile-centric and help IBM i teams to implement continuous integration and continuous deployment best practices. These features include:

  • Automated security and testing
  • Continuous feedback
  • Containerization
  • Git and Jenkins integrations. 
  • Automatic conversion of fixed-form RPG to free-form RPG

Why Is IBM i MERLIN Necessary?

I think this is the question that is most important. IBM has found that there are still shops doing development using SEU/PDM and while that solution works (sort of) it’s really “old school” and it’s long past time to move on to more modern development approaches — like agile development. IBM i MERLIN provides many of the components that can make the agile development model work successfully in an IBM i shop.

Making the Jump to Agile in IBM i

Modern development groups are using modern tools and, more importantly, a modern development paradigm called agile development. Adopting agile development approaches, at least wholesale, has been an uphill battle for IBM i shops. But before we get into that, let's talk a bit about agile development and why it's become such a popular development methodology.

What Is Agile Development?

Agile development, as a term, was coined by a group of 17 developers in the spring of 2000. The results of the ideas born out that day are encapsulated in the Agile Manifesto, which dutifully summarizes the idea of iterative development over pure waterfall models as well as a few other ideas. Again, way too much detail to dig in to here, but plenty of good reading on the website that documents the 12 Principles of Agile. Suffice it to say, we really need to look at this because while over 20 years ago it was an idea, today it is much more commonplace.

Why Adopt Agile Development?

Here is the really important concept and I’ll try to break this down with a simple example. Companies doing Waterfall development would typically ask the users for requirements, then go away for several weeks, months, or even years to build an application that meets the stated requirements. Once built, the developers would happily run back to the same users to show off the beautiful new system.

Upon inspection of the new system, these users, almost consistently, would respond: “That’s not what I asked for.” In many cases, nuance would get lost during the development process. The lack of a feedback mechanism during development often plagued the direction of the project and left users questioning the sanity of the developers. In the worst cases, confidence between the users and the developers eroded to almost nothing.

Agile seeks to remedy a lot of the plagues of the old waterfall development model by replacing it with a more modular and immediate feedback mechanism. Instead of a long development process after the requirements are delivered, a short “sprint” may take place to give the users a simple, yet functional component of what they asked for.

This is often times referred to as the Minimum Viable Product, or MVP. It would be ready for production, and ideally moved into production quickly. Then additional components would be added a bit at a time. Since the “sprint” cycle is shorter, user feedback is given almost immediately.

This description is only scratching the surface of agile, but I hope you get the drift. The frequent movement of code from development to production would be automated by a process often referred to as DevOps. IBM i MERLIN covers all these.

PHP and Agile Development

One of the big questions around PHP and agile development is whether or not PHP is a good language for agile development. The answer is “yes, but…”.

Many Object Oriented languages are ideally suited for Agile. But any programming language that supports even a functional or procedural model can participate in the agile world. That includes RPG!

But Monolithic RPG or PHP programs with 3,000 lines of global variables are not exactly well suited for Agile development. The question then becomes, "How do we break down the monolith, while not disturbing the production workflow and remaining profitable?" This is the challenge plaguing IBM i shops for decades.

While IBM brags that 65 years of backward compatibility “protects your investment in RPG programs” they also have to figure out how to get you to give up that luxury in the face of Agile development models. Is your PHP code modular or monolithic? Maybe some light refactoring would get you to the point where you can start to employ Agile concepts?

The Ongoing Push Toward PHP Modularity

Many developers in the PHP realm have adopted more modern coding techniques as a result of examples and best practices. Every language has a “Best practices” approach and the one for PHP development can be found at the PHP FIG. By reviewing and even contributing to the PSRs, developer can hone best practices to make coding consistent and even more maintainable. And that starts with modularity.

Final Thoughts

The reality is that while IBM i MERLIN is a good solution, it is not the only way forward. At Perforce, we advise our clients daily of the best practices they can use to implement more modern development paradigms. And we can help by doing an initial code assessment. This code assessment let’s our stable of static analysis tools and light observation from our services team the opportunity to provide very quick feedback on how to get moving toward modern PHP version compliance and into the world of Agile development.

How to Book Your Code Assessment

Modernizing your IBM i or PHP application(s) can be daunting. When you partner with Zend, you can get a no-commitment necessary code assessment to determine your best path to modernizing your application(s). Talk to an expert today to get started.

Talk to a PHP Expert

Additional Resources