Improve Distribution Team Pipelines to increase Velocity and Developer Productivity
## Summary
The Distribution team is facing an increase in unscheduled work caused by complexity in the pipelines. Pipelines are not providing complete coverage based on how the team needs to test deliverables.
Technical debt tasks to decrease this complexity and take advantage of newer GitLab CI features will help improve team velocity.
## Background
Distribution pipelines, such as those building Omnibus and Cloud Native, grew organically and iteratively as problems were solved. Tight product deadlines and demands have prevented the team from slotting in work to improve the pipelines and take the necessary steps to increase efficiency. Additionally, there are newer tasks and testing that require discovery and investigation to properly automate that are currently performed manually.
Over time, the complexity has become fragility and the issues are endangering the team's ability to sustainably deliver the increasing volumes of output that are expected as demands grow.
Engineers on triage duty have begun identifying common failures in pipelines and they tend to fall into two buckets:
1. Systemic issues, timeouts, and order of operations that require concerted engineering effort that needs to be scheduled
1. Problems that are temporal, but, due to the complex nature of the pipelines and the deep context required to understand them, take longer to resolve than should be necessary
## Proposed outcomes and deliverables
1. Gather information and context about existing problems and challenges facing the pipelines
1. Document the gathered information for easier consumption by team members and other interested parties
1. Define metrics to measure the efficiency of our pipelines and inform our definition of done for the improvements
1. Determine how the metrics can be published to monitor for problems down the road
1. Collaborate with other teams to clearly identify which areas are failures that require handoff to another DRI and document the process clearly to assist the engineer assigned to triage duty with efficient processing
1. Identify testing steps that can be automated to improve developer productivity and confidence
epic