My Mentorship: Polycephaly

Written by Innocent Onwukanjo, Open Mainframe Project 2021 Summer Mentee

This summer, I was accepted into the  Open Mainframe Project Mentorship program working with the Polycephaly project. The name  “Polycephaly,” refers to a condition of having more than one head. In this case, it is called Polycephaly because the project marries two different development life cycle methodologies, distributed and z/OS. This project was solely developed by my mentor Jerry Edgington, a Senior Technical Analyst at Western Southern with 35+ years of zSeries system programming experience, including z/OS, z/VM, and Linux on Z.

Up until I got accepted into the Open Mainframe Mentorship, I had not worked on the mainframe professionally. I have always wanted to learn about it but haven’t had the opportunity.

During the first few weeks of the mentorship, I was challenged to learn all about the project – how it worked, benefits and more. With my mentor’s help through meetings, chats and frequent questions, I learned how Polycephaly works and then how to contribute to the Jenkins (CI/CD) pipeline build. Here’s what I learned: 

  • The Polycephaly project is a modern agile approach to software development on the mainframe.
  • It takes away the burden of interfacing with z/OS off the shoulders of the developer, so the developer has the flexibility and freedom to develop applications on any IDE and deploy to the mainframe.

Now, I would love to share how Polycephaly does the magic.

The Polycephaly java and groovy codes are compiled and are added to the Polycephaly.jar file which is used to run a sample COBOL code.

The entire Software build process is done on a Jenkins slave on z/OS. The Jenkins slave does the bulk of the work by downloading the latest Jenkins slave file to z/OS. The Jenkins slave connects with the git server for the application, pulls and builds the repo and downloads the application source to the repo on z/OS.

Using the build.groovy script, Polycephaly creates an instance of the zOSAppBuild object and with its execute method, the applications build process begins.

Polycephaly has the ability to detect the type of application to be built whether a java, groovy or a COBOL (v4 or v6) source code. It does this by detecting the parameters and properties of the file thereafter, and creates a build list. Using the build list, Polycephaly then creates a build order using the buildOrder function which it uses to determine the order it would use in processing the source files.

Working on Polycephaly has taught me so much about the mainframe. Although this is a fraction of the entire process, I promise to always learn more and continue contributing to the Polycephaly Project.

Learn more about Innocent and Jerry or any of our other 2021 Summer Mentorship participants in this blog.

You are also invited to the General  Mentorship session at Open Mainframe Summit, being held virtually on September 22-23. My fellow mentees and I will be giving a final presentation on Wednesday, September 22 at 12:15 pm EDT. Register here: https://events.linuxfoundation.org/open-mainframe-summit/register/.