In addition to the core mechanics of GitOps enabled by technologies like Weaveworks, there is also a set of apps that build upon it to manage the surrounding work.
An especially interesting dimension to GitOps is that you can extend the model to include ‘people management’ related activities, the collaboration, scheduling and project management surrounding the core operations automation.
In their blog The GitOps Pipeline, Weaveworks start to touch on this:
“User friendly social features like user names, auth, permissions, teams, private and public repos and pull request collaboration. This makes Git more intelligible to humans and enables teamwork.”
Three vendors are referenced to explain further: Zenhub, Aha.io and SonarCloud. Each work “within” Github and augment its functionality with new features.
SonarCloud decorates your pull requests, giving you the feedback you need, right in your GitHub repositories. It checks your pull requests and provides a clear Go / No-Go Quality Gate indicator before you merge, providing a barometer on the quality of your PR, so you’ll have a clear vision of what you’re about to merge.
SonarCloud finds the issues in your pull requests, so you can fix them while the code is still fresh.
ZenHub is a project system for engineering and product management that operates within GitHub, integrates features like Backlog Management and Sprints directly into Github. It is natively integrated into GitHub, using Issues and GitHub’s underlying data to keep project progress up-to-date and your software roadmap on track.
In their blog How to use GitHub for Project Management, they describe their core approach of mapping agile concepts and working models on to the functionality of their app, such as Product And Sprint Backlogs – The team can feed in all the outstanding work and assign tasks to sprints, adding Estimates to issues (by time or complexity), requirements, and attach a Milestone.
Zenhub emphasize the cost of ‘context switching’, where workers have to change between tools to continue their work. A study by the Journal of Experimental Psychology found that people who multitask see a 40% drop in productivity. When interrupted from a task, it takes 20-30 minutes to refocus.
Zenhub eliminates this need to switch, by embedding the functionality of their application within another, in this case Github, thus augmenting the features that environment provides to your developers.
Aha.io is an app for strategic roadmapping, cascading down from the top most level of market and product strategy planning through the feature release scheduling to implement those strategies.
Sprints, or “iterations”, are mirrored in GitHub with Milestones. Simply set a start and end date (typically two or four weeks), and add user stories to begin sprinting.
GitOps for People – Connecting Business and IT
Software teams do not exist in isolation, the code they deploy is consumed by business and end user customers; it is essential this whole system is considered.
It’s also been clearly identified that closer interaction between business users and developers during the full software engineering process is key to positive outcomes and success.
Harnessing ‘GitHub for People’ achieves this literally, merging the activities of marketing, product and technology teams into a single interface and set of workflows, and also extending the core use of the Github premise to this broader scope of work.
Requirements enter the developers realm as new Issues, where they can be progressed to a point of conclusion deployment to the GitOps environment. The collaboration features of the integrated Team Management apps cater for keeping every one ‘on the same page’ as it progresses through this cycle, which in turn can update their strategic product roadmaps.
Critically this establishes a formal two-way dynamic between ‘Business’ and ‘IT’, one that is enabled in real terms through the synthesis of these two main application sets – The strategy and planning of work, and the implementation and maintenance of it.
Apps like Aha.io cater for business users, in their case the ability to create large-scale strategy & product management roadmaps. This captures strategy at the highest organization level, then cascades it down into what are in essence Epics and Sprints, rolling up Requirements into Milestone delivery plans.
At this point the apps connect to exchange the main unit of work, the Github issue, and thus there is an end-to-end assignment of work linked to strategy, and back again. The Business team can break down their strategy into specific deliverables required, feeding the DevOps work stream in the form of user stories, with reporting on their progress fed back up the line via the same integration.
Establishing this ‘closed loop’ system the flow through it can be assigned measurement tags, leveraging factory line type optimization principles to find ways to expand and accelerate Deployment Throughput.