Git is everywhere in the world of distributed applications, but not yet for mainframe.
Should you consider Git for your mainframe? Why?
Git is excellent at facilitating and accelerating collaboration for software teams. People with a distributed background already know this, but some of us are resisting a bit in the mainframe world.
Git is a distributed version control system which can store not just code, but nearly everything related to software development – including test packs, data, documentation, configuration and more. It is a common repository which can be shared across teams. This helps to break down silos between teams, as it means that everyone can access what they need and work together more effectively.
Why embrace Git?
- Work with teams more easily as you can simply give them access to see the source code for your projects that they need to see. Collaboration is not shut down like it is when they don’t have a hope of getting access to your code.
When a change is made to part of your system which impacts another system, there is no need to send the edited code/new specifications across to other teams. Instead, you can inform them that there has been a change, share a link to where the new version is in Git, and they immediately have visibility. Pipelines can be shared between teams so when Team 1 edits an artefact e.g. copybook, Team 2’s API can be automatically rebuilt with the updated version.
- Git liberates developers to work in a more agile way which results in changes being released faster. For example, using Feature Branches each person can perform their work at their own pace without affecting anyone else, and merge it to the Main Branch when its ready. This encourages small and frequent code check ins and ultimately a more agile way of working.
- Git is the standard for version control across industries and systems. Even if your existing mainframe team members need upskilling to use Git, new joiners to your team will likely already have the skills and be productive quickly. Git (as well as the agile processes Git enables) can also be an attractive pull for people to join your company as Git skills will be key for most developers in future.
- Git works extremely well with continuous integration (CI) and continuous delivery (CD) pipelines. Git integrates by default with all CI and CD tools, which enables you to build mature automation and streamline your entire SDLC. Pipelines provide consistency and traceability, ensuring that every piece of code goes through the same rigorous validation and quality checks. For example, your pipeline could include mandatory code scanning for security standards.
- Automate testing for higher quality changes. Streamline processes by creating automated test packs for unit as well as system and integration testing, which are associated with the code and run in pipelines. Test packs can be stored in Git alongside the code so they are always available and its easy to keep them in sync. Once you have completed your development, you can kick off an automated pipeline to do testing and deploy to the next environment. No need for slow, error-prone, manual testing.
- Reduce handovers. No need to create a ticket to another team since the automated pipeline does the build, testing and deployment. There is no information lost/misunderstood, and no time wasted on ticket systems/calls to discuss the work/waiting for another team to be ready.
- Empower the dev team to make infrastructure changes. No need to raise a ticket and wait on another team. For example, if you need to make a database change, add the DDL scripts to your Git repo and it will be included in the pipeline, tested and deployed. Terraform patterns and other infrastructure definitions can be incorporated into a pipeline.
- Since Git is standard across most platforms, third party products are increasingly providing Git integration out of the box. This reduces the overheads in setting up a new system for your team.
Git is by no means the only distributed version control system available, but Git is regarding by many as the best, easiest to use, and the most effective.
If you want to talk about how to migrate from your existing SCM to Git, how Git can boost your dev and test practices, and hear some client stories, contact us.