IBM z/OS Connect / Defining the future direction of IBM z/OS Connect
Defining the future direction of IBM z/OS Connect
Overview
Having first been released in 2015 z/OS Connect is a well established product with hundreds of customers world wide. In its original form z/OS Connect was released as an Eclipse IDE plugin, with a server runtime on IBM z/OS. For many years the product boasted great success selling to the top banks, retailers, and insurance companies around the world. However, as our customers API strategies continued to mature, so too did the requirements for IBM z/OS Connect. This section of the case study explores the customer pain points and changes in IBM corporate strategy that lead to re-design of IBM z/OS Connect.
User research
Customer feedback has always been at the heart of the decision making process in z/OS Connect. Feedback is constantly gathered from multiple sources including; requests for enhancements (RFEs), customer advocacy calls, design partnership calls, customer workshops, and more. This feedback is typically fed into the future roadmap, and enhancements are delivered in subsequent releases. However, some of these enhancements were deemed unviable due to engineering constraints and left unchanged. This was until they could not be ignored any longer due to popular demand.To better understand these requirements, the design team undertook fact finding research calls with a selection of sponsor users. This research lead to the following conclusions of the major pain points that needed addressing:
Sponsor users
Sponsor Users are real-world users that regularly contribute their domain expertise to your team, helping you stay in touch with users’ real-world needs throughout the project.
Compliant APIs
Developers desperately need to create APIs that meet company and industry standards. This pain point is associated with three factors;
- z/OS Connect does not support the latest version of the OpenAPI specification - OpenAPI 3.
- Users cannot alter the API schemas that have been generated by z/OS Connect based upon the back-end system of record. This results in unnecessary compromises being made to the API standards set out by the business.
- Relating to point 2; users cannot import a pre-defined OpenAPI document into the tooling as a starting point. These documents can take months for the business to agree upon, but cannot be re-created in z/OS Connect.
Development agility
An important factor in success is the speed and accuracy at which application developers can develop APIs to meet incoming requirements. Research suggests a number of factors that can limit developers agility:
- Developers must wait for a development server to be provisioned to test their APIs. This process can take weeks to complete as System Programmers are inundated with similar requests.
- Developers will typically share development servers which can lead to conflicting API calls if resource naming is not properly managed.
- Tooling roll out is very difficult as z/OS Connect is a desktop client and developers cannot freely install software on their machines.
- Tooling upgrades are incredible slow, sometimes taking up to half a year to roll out. This prevents developers from using the latest features in z/OS Connect which are available on a monthly basis.
Complex mapping
Developers need to create more complex mappings between fields of an API and the back-end system it’s exposing. Use cases for complex mapping vary from simple examples such as combining multiple fields, to highly complex, such as calculating the sum of a field in different currencies.
DevOps pipelines
Devops Engineers struggle to create modern DevOps pipelines for z/OS Connect. This has been attributed to the complexity of the z/OS system, requiring more bespoke knowledge when building a pipelines, and the non-standard artefacts that are created by z/OS Connect. These pipelines can take months to build and DevOps Engineers struggle to find adequate documentation.
Product incompatibility
Customers whom have purchased multiple IBM integration products struggle to make them work together. An example of this is using IBM API Connect to manage z/OS Connect APIs. While the tools are from the same suite they bare little resemblance. The installation methods differ, the interfaces are dissimilar, and the deployment artefacts are not the same. This disparity leads customers to require more bespoke training and leads to an overall higher maintenance overhead.
API versioning
Developers needed to run multiple versions of the same API to give consumers adequate time to transition to a new version. This was especially important if a new version was likely to break existing behaviours. In relation to this, developers needed to test new versions of on API and quickly roll back to a previous version in the event of failure.
API Security
Today in z/OS Connect the same security rules are applied to every path of an API. Developers needs more granularity in these security controls and the ability to apply different security constraints on different paths of the API.
IBM corporate strategy
As with any organisation corporate strategy plays a role in defining the direction of its products. During this period there were two major investments made by IBM that were set to influence the future direction of z/OS Connect, and all other products at IBM.
Hybrid cloud
In 2019 IBM announced its hybrid cloud growth strategy. The objective of hybrid cloud is to bring together public, private, and on-prem infrastructure (such as IBM Z) by building upon common open standards of architecture (containers) to simplify resource management. This strategy is being realised through IBM's monumental acquisition of Red Hat for $34 billion - a market leading Kubernetes platform.
Carbon Design System
In 2018 IBM released the first iteration of IBM Carbon Design System - an open-source design system with a vibrant community of contributors . This design system marked a huge investment in IBM strategy to offer consistent digital experiences for all its products and offering.
Defining future direction
In an effort to formalise our product direction the team gathered in a room for 5 days to undertake a Design Thinking workshop. This workshop bought together team members from around the world with representation from all disciplines. In this workshop we collectively explored the research findings, drew up empathy maps, mapped out a series of as-is scenarios, identified need statements, then discussed IBMs corporate strategy. This helped us establish a shared understanding of the problem space moving forwards.
Personas
An important baseline that we needed to establish was our three key personas. User research had highlighted that the responsibilities of one of our personas ‘Alan’ had changed, while another persona ‘Shavon’ (from the previous release) no longer existed in the majority of our users shops.
Stan the Systems Programmer
Stan has an unparalleled knowledge of the infrastructure running on IBM Z. He is responsible for setting up the z/OS Connect infrastructure and ensuring the system is robust, performant, secure, and runs with minimal downtime. Stan will typically have decades of experience with IBM Z, having committed his career to the platform. In many cases will be close to retirement.
Alan the Application Developer
Alan is an application developer who develops and maintains applications which run on IBM Z. Alan has an intimate knowledge of the application code which is typically written in traditional programming languages such as COBOL and PL/I. Alan will develop and test APIs for the mainframe using the z/OS Connect tooling then work with Stan the System Programmer to deploy these APIs to a staging environment.
Denise the DevOps Engineer
Denise is a comparatively new persona in the mainframe domain. She is responsible for building DevOps pipelines for the mainframe that will automate the build and deployment processes for new and old applications. Denise is often building DevOps pipelines for the first time on the mainframe and is met with scepticism from her peers.
Hill statements
To conclude the workshop we crafted three Hill statements that would represent our intent moving forward.
Hill statements
A Hill statement is a statement of intent written as meaningful user outcomes - they tell a team where to go, but not how to get there. (ie. they're not technology focussed, they're user focussed). A hill statement includes a who, a what, and a wow.
Hill 1
Stan the systems programmer can enable hundreds of hybrid teams to provision isolated APIs using IBM Z data and services, through development and test environment in minutes without requiring Stan’s assistance.
The intent for this hill is to improve developer agility by enabling developers to self-provision everything they need to develop and test an API.
Hill 2
Denise the DevOps engineer can create a DevOps pipeline that can build and deploy APIs in isolation from other hybrid teams for an application involving IBM Z data and services.
The intent of this hill is to greatly simplify the process of creating a DevOps pipelines for z/OS Connect. To realise this hill z/OS Connect would have to use more standardised artefacts that align with the open standards of architecture.
Hill 3
Alan the application developer can create API integrations to and from IBM Z data and services, meeting company API standards, using the same set of tools and the rest of his hybrid team.
The intent of this hill is to enable application developers to create fully compliant APIs. This would require support for the OpenAPI 3 specification, the ability to import pre-define OpenAPI documents, and support for more complex mapping in the tooling.
These hill statements were later pitched to our sponsor users to validate our directions. After a series of calls, and refinements made to the hill statements the hills were ready to commit to the business.
Playback Zero
Playback zero
Playback zero is an important milestone where the team and stakeholders agree on what the team will actually commit to deliver. During Playback Zero, the team focuses on their proposed user experience. They tell a realistic, compelling story of a complete user journey for each of their Hills.
With conclusion drawn around the future direction of the product, the final stage of the process was to pitch our intentions to the business and our clients. This was achieved by firstly presenting our playback zero to an audience of existing z/OS Connect users, then to the business.
Our playback zero outlined our research findings in the form of an as-is scenario, drawing emphasis to our users pain points. We then went on to pitch a to-be scenario whereby these pain points had been resolved, showcasing out future intentions for the product.
Our playback zero outlined our research findings in the form of an as-is scenario, drawing emphasis to our users pain points. We then went on to pitch a to-be scenario whereby these pain points had been resolved, showcasing out future intentions for the product.
Sample slides
Customer quotes
As an organisation we have made the decision to go containerisation, this solution falls in line with this.
—System programmer, European bank.
We'd like to be able to do DevOps as a service at scale. IBM cloud, Azure etc have examples pipeline where you can click and create.
—Devops engineer, American bank.
This is exactly what we've been looking for. This makes sense that we have an OpenAPI Spec that we don't want to change and we have COBOL structures that we don't want to change
—Application developer, European bank.
Getting the contract first is critical, we've made some work arounds that have been successful but getting that into the product is a driver for us
—System programmer, European bank.
We'd like to have everyone using the same tools and this is just another technology stack
—Enterprise architect, American bank.
Designing the product experience
The next stage of development was to explore how our hills translated into a product experience. There was already some ideas how this could be achieved with the technology we had available to us. The team went on to explore these ideas with small proof of concepts and prototypes. The challenge was validating these ideas with our customers to ensure we were moving in the correct direction.
Web based experience
The first intention was to modernise our user interface by shift away from an Eclipse IDE and moving towards a web based experience. While this is a big investment, it was seen to benefit our users in the following ways:
- Users would be able to access the tooling from their favourite web browser, and not face the tedious process of rolling out the tooling as a desktop client.
- Users would be able to upgrade the tooling from a single centralised deployment, rather than individual machines.
- The user interface could be designed in such a way that is shares UX patterns with other IBM integration tools such as IBM App Connect and IBM API Connect (these tools had already adopted Carbon Design System). Thereby creating a common experience between the tools.
Contract first
To ensure the APIs looked exactly as our customers required, we would firstly implement for a ‘contract first’ process whereby a pre-defined OpenAPI document was imported into the tooling as a starting point. The back-end interface could then be mapped to this OpenAPI document without compromise. Later releases of z/OS Connect would feature API generation (as existed in the current tooling), and API editing (the ability to edit the API schema in the tooling).
Containerised deployment
Containerising the z/OS Connect deployment was seen to satisfy many of our customers requirements while also aligning with the corporate direction of IBM. It is however a big step change from todays product and required thorough validation with clients. Adopting a micro-service container approach was seen to offer the following benefits to our customers:
- Aligning with modern cloud architectures that were becoming the global standard, thereby creating consistency across the enterprise.
- Standardising deployment architecture, thereby requiring less bespoke knowledge and training.
- Providing isolation between deployments so developers can test their APIs without conflicts.
- Enabling developers to self-provision environments thereby removing the dependency on system programmers to provision servers.
- Offering the ability to run multiple versions of the API simlitationely
- Providing all the resource management benefits offered by Kubernetes platform such a green/ blue deployments.
- Enabling z/OS Connect to be deployed into different environments other than IBM z/OS. This enables users to run z/OS Connect where it makes sense for the business to run it.
JSONata mapping
From early discussion with other IBM teams, we learned a technology called JSONata. JSONata was an open source technology designed by IBM which was purpose built for manipulating JSON data. This technology also included a complimentary UI that had been designed by the IBM App Connect team (a product we sought to align with). This was seen to be a perfect fit for our requirements for more complex mapping.
The next stage of the process was to bring these ideas to life, while continuing to collaborate with our sponsor users. The following sections describe how this was achieved:
The next stage of the process was to bring these ideas to life, while continuing to collaborate with our sponsor users. The following sections describe how this was achieved:
Continue reading