Change-Id: I199b5b9bda971e812edb10356ad930a5601539af
7.3 KiB
CI Team Structure
Problem Description
The soft analysis over the past one to two years is that landing major new features and function in CI is difficult while being interrupted by a constant stream of issues. Each individual is siloed in their own work, feature or section of the production chain and there is very little time for thoughtful peer review and collaborative development.
Policy
Goals
- Increase developer focus, decrease distractions, interruptions, and time slicing.
- Encourage collaborative team development.
- Better and faster code reviews
Team Structure
- The Ruck
- The Rover
- The Sprint Team
The Ruck
One person per week will be on the front lines reporting failures found in CI. The Ruck & Rover switch roles in the second week of the sprint.
- Primary focus is to watch CI, report bugs, improve debug documentation.
- Does not participate in the sprint
- Attends the meetings where the team needs to be represented
- Responds to pings on #oooq / #tripleo regarding CI
- Reviews and improves documentation
- Attends meetings for the group where possible
- For identification, use the irc nick $user|ruck
The Rover
The primary backup for the Ruck. The Ruck should be catching all the issues in CI and passing the issues to the Rover for more in depth analysis or resolution of the bug.
- Back up for the Ruck
- Workload is driven from the tripleo-quickstart bug queue, the Rover is not monitoring CI
- A secondary input for work is identified technical debt defined in the Trello board.
- Attends the sprint meetings, but is not responsible for any sprint work
- Helps to triage incoming gerrit reviews
- Responds to pings on irc #oooq / #tripleo
- If the Ruck is overwhelmed with any of their responsibilities the Rover is the primary backup.
- For identification, use the irc nick $user|rover
The Sprint Team
The team is defined at the beginning of the sprint based on availability. Members on the team should be as focused on the sprint epic as possible. A member of team should spend 80% of their time on sprint goals and 20% on any other duties like code review or incoming high priority bugs that the Rover can not manage alone.
- hand off interruptions to the Ruck and Rover as much as possible
- focus as a team on the sprint epic
- collaborate with other members of the sprint team
- seek out peer review regarding sprint work
- keep the Trello board updated daily
- One can point to Trello cards in stand up meetings for status
The Squads
The squads operate as a subunit of the sprint team. Each squad will operate with the same process and procedures and are managed by the team catalyst.
- Current Squads
- CI
- Responsible for the TripleO CI system ( non-infra ) and build verification.
- Tempest
- Responsible for tempest development.
Team Leaders
The team catalyst (TC)
The member of the team responsible organizing the group. The team will elect or appoint a team catalyst per release.
- organize and plan sprint meetings
- collect status and send status emails
The user advocate (UA)
The member of the team responsible for help to prioritize work. The team will elect or appoint a user advocate per release.
- organize and prioritize the Trello board for the sprint planning
- monitor the board during the sprint.
- ensure the right work is being done.
The Squads
There are two squads on the CI team.
- tripleo ci
- tempest development
Each squad has a UA and they share a TC. Both contribute to Ruck and Rover rotations.
Current Leaders for Rocky
- team catalyst (ci, tempest) - Matt Young
- user advocate (ci) - Gabriele Cerami
- user advocate (tempest) - Chandan Kumar
Sprint Structure
The goal of the sprint is to define a narrow and focused feature called an epic to work on in a collaborative way. Work not completed in the sprint will be added to the technical debt column of Trello.
Note: Each sprint needs a clear definition of done that is documented in the epic used for the sprint.
Sprint Start ( Day 1 ) - 2.5 hours
- Sprints are three weeks in length
- A planning meeting is attended by the entire team including the Ruck and Rover
- Review PTO
- Review any meetings that need to be covered by the Ruck/Rover
- The UA will present options for the sprint epic
- Discuss the epic, lightly breaking each one down
- Vote on an epic
- The vote can be done using a doodle form
- Break down the sprint epic into cards
- Review each card
- Each card must have a clear definition of done
- As a group include as much detail in the card as to provide enough information for an engineer with little to no background with the task.
Sprint End ( Day 15 ) - 2.5 hours
- Retrospective
- team members, ruck and rover only
- Document any technical debt left over from the sprint
- Ruck / Rover hand off
- Assign Ruck and Rover positions
- Sprint demo - when available
- Office hours on irc
Scrum meetings - 30 Min
- Planning meeting, video conference
- Sprint End, video and irc #oooq on freenode
- 2 live video conference meetings per week
- sprint stand up
- Other days, post status to the team's Trello board and/or cards
TripleoO CI Community meeting
- A community meeting should be held once a week.
- The meeting should ideally be conveniently scheduled immediately after the TripleO community meeting on #tripleo (freenode)
- The CI meeting should be announced as part of the TripleO community meeting to encourage participation.
Alternatives & History
In the past the CI team has worked as individuals or by pairing up for distinct parts of the CI system and for certain features. Neither has been overwhelmingly successful for delivering features on a regular cadence.
Implementation
Primary author: Wes Hayutin weshayutin at gmail
- Other contributors:
-
- Ronelle Landy rlandy at redhat
- Arx Cruz acruz at redhat
- Sagi Shnaidman at redhat
Milestones
This document is likely to evolve from the feedback discussed in sprint retrospectives. An in depth retrospective should be done at the end of each upstream cycle.
References
Trello
A Trello board will be used to organize work. The team is expected to keep the board and their cards updated on a daily basis.
Dashboards
A number of dashboards are used to monitor the CI
Team Notes
Bug Queue
Revision History
Release Name | Description |
---|---|
Rocky | April 16 2018 |
Note
This work is licensed under a Creative Commons Attribution 3.0 Unported License. http://creativecommons.org/licenses/by/3.0/legalcode