3-week iterations aligned with the OpenShift release schedule. Each release cycle contains multiple iterations.
- In planning, each engineer picks a refined story to develop and a few unrefined stories to refine
- Develop your story and refine the others
- When done, notify the team in weekly sync, grab another refined story from the backlog
- When done refining, grab the next ones
- If a story is larger than expected, break it down, re-estimate, and put new stories in the backlog
When a story grows beyond its original estimate during development:
- Pause implementation.
- Revisit the story: split it into subtasks, divide into must-have and nice-to-have.
- Move nice-to-have items to new stories in the backlog.
- If nice-to-haves are implemented already, merge them in separate PRs.
- Resume implementation of must-have subtasks.
- Merge the must-have subtasks in separate, ideally small, focused PRs.
- Repeat 1-5 as needed.
If the work is already done but the PR has grown large, split it into multiple smaller PRs before requesting review.
We use Jira for planning and tracking. Issues are organized as:
- Epics group related stories under a single initiative (see epic template)
- Stories describe a unit of deliverable work (see story template)
- Bugs describe a defect to fix (see bug template)
- Sub-tasks break a story into smaller pieces when needed
- New - Issue to refine
- Backlog - Ready for development
- Refinement - Issue is in refinement
- In Progress - Work has started
- Code Review - PR is open and awaiting review
- Closed - PR is merged
Refinement converts a vague initiative into work an engineer can act on. A story is considered "refined" when any team member could read it and know what to build and when it's done.
Process:
- PM Kickoff (30-60 min, once per OCPSTRAT):
- The PM explains the what/why, success criteria, and priority.
- The primary and secondary architect attend.
- This happens before iteration planning when new OCPSTRAT work enters the cycle.
- Async Breakdown: The primary and secondary architect decompose the OCPSTRAT into epics and stories in Jira.
- Open Questions: Brought to the optional weekly refinement slot (45 min).
Rules:
- Blocked work should not be refined, defer until it is unblocked.
- Refinement is ongoing.
- Identify large stories during refinement and split them into subtasks with priorities (must-have / nice-to-have). Each subtask should be independently mergeable.
The rest of the team reviews refined stories in Jira and leaves comments.
Weekly Sync + Technical Discussions (every Tue + Thu)
Checklist:
- Status sync - each engineer:
- Story assigned to the engineer working on it?
- Status up to date?
- Are priorities correct?
- PR linked to the story?
- Stories in refinement up to date? Questions/comments answered?
- Correct parent epic?
- PR review assignments - assign open PRs until everyone has 1-3 PRs to review.
- Technical discussions - discuss stories in progress or upcoming stories that need alignment.
Calendar event descriptions should reference this checklist as the single source of truth.
Backlog Cleanup / Grooming (every week, Tue or Thu or both)
Checklist:
- Go through all New / Backlog stories and bugs
- Identify large stories and split them into prioritized subtasks (must-have / nice-to-have)
- Prioritize and assign stories for refinement
- Close stale items
- Create new tickets as needed
- Discuss open questions
Calendar event descriptions should reference this checklist as the single source of truth.
Review + Planning (every three weeks on Thu, iteration end)
- Review first, then planning.
Retrospective (every three weeks on Tue, iteration start)
Checklist:
- Collect feedback from all team members
- Select new rotating facilitator
- New facilitator creates a story with action items under the main working epic
- Document outcomes using the retrospective template
- Open PR to update current facilitator in README.md
On weeks where the retrospective intersects with the backlog grooming meeting, grooming moves to Thu.
Calendar event descriptions should reference this checklist as the single source of truth.
During rotation:
- Set up sync ceremony meetings
- Facilitate sync ceremonies: keep time and lead the agenda
- Run the Jira sanity check during the weekly sync
- Track PR review assignments during the weekly sync
- Open a draft PR early to reserve the PR number and signal work in progress
- Keep PRs small and focused. One concern per PR.
- If a PR has grown large, split it into multiple smaller PRs before requesting review.
- Follow the PR template at
.github/pull_request_template.md