BreadcrumbHomeResourcesBlog IBM I MERLIN and What It Means For PHP Teams September 2, 2022 IBM i MERLIN and What It Means for PHP TeamsIBM iBy Mike PavlakIBM i MERLIN, a new paradigm that is designed to help development teams move faster down the modernization road, is now available from IBM.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.Table of ContentsWhat Is IBM i MERLIN?Agile Development in IBM iAgile Development and PHPFinal ThoughtsTable of Contents1 - What Is IBM i MERLIN?2 - Agile Development in IBM i3 - Agile Development and PHP4 - Final ThoughtsBack to topWhat Is IBM i MERLIN?IBM i MERLIN is a strategic platform for modernizing legacy applications and development processes. 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, IBM i 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. IBM i MERLIN: Key FeaturesThe 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 IBM i MERLIN features include:Automated security and testingContinuous feedbackContainerizationGit and Jenkins integrations. Automatic conversion of fixed-form RPG to free-form RPGWhy Is IBM i MERLIN Important?I think this is the question that is most pressing. 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.Back to topAgile Development in IBM iModern 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, and why it matters for IBM i MERLIN and PHP teams.What Is Agile Development?Agile development is a process of project management that gives greater weight and attention to individuals over tools, interactions over processes, and similar.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.Back to topAgile Development and PHPOne 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 ModularityMany 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.Back to topFinal ThoughtsThe 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 AssessmentModernizing 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 ExpertAdditional ResourcesSolution - Zend Professional ServicesDatasheet - Zend Continuous Delivery AssessmentDatasheet - Zend PHP Architecture AuditDatasheet - Zend Professional Services for IBM iTraining - IBM i Training CoursesWhite Paper - Developer's Guide to PHP and Open Source on IBM iBlog - IBM i Modernization: Modernizing Smartly and on a BudgetBlog - Using ZendPHP, PHP-FPM, and Nginx on IBM iBlog - Using HTTP Proxy Support for IBM iBlog - Using MariaDB and PHP on IBM iBlog - Using Mezzio on IBM iBack to top
Mike Pavlak Sr. Solutions Engineer, Zend by Perforce Mike has been working with IBM midrange solutions since 1992 and IBM Mainframes before that. Mike was instrumental in developing the adoption of PHP as a primary solution for web development on IBM i working with Zend Technologies. Today, as Senior Sales Engineer with Perforce, Mike helps companies around the world approach the challenges of modernization and open source technologies. In addition to several roles as a volunteer with COMMON the premier IBM midrange user group, Mike also teaches PHP & Python classes part time at Moraine Valley Community College in Suburban Chicago.