How We Work

This page describes how the OCM team organizes its day-to-day development work. Most meetings listed here are open to the public - anyone is welcome to join, listen, or participate. The Retrospective is invite-only to maintain a safe space for feedback.

How We Structure Work

All work items are GitHub issues tracked on the OCM Backlog Board. Work is organized in a hierarchy:

TypePrefix / LabelScopePurposeTemplate
InitiativeInitiative:Multiple quartersCommunicates vision and progress to stakeholders by aggregating epics-
EpicEPIC: (epic type)~1 quarterOrganizes tasks into a manageable chunk that tracks progress towards an initiativeepic
Tasktask type1 sprintDocuments a small unit of work within an epic so progress is traceable and hand-off is possibletask
Spikespike typeTime-boxedExplores a question or proof-of-concept within an epic; result is open-endedspike

Project Board and Issue Tracking

All work is tracked on the OCM Backlog Board in the ocm-project repository. The board has several views:

ViewPurpose
Current SprintActive sprint work
Next SprintUpcoming sprint queue
BacklogAll open issues, prioritized
RoadmapTimeline view of planned work
EpicsHigh-level feature tracks

How Issues Enter the Sprint

Anyone can propose work for an upcoming sprint. The process is:

  1. Create an issue in the relevant repository (or in ocm-project for cross-cutting work). Write a clear description following the appropriate issue template.
  2. Self-refine the issue - ensure it has enough context for others to understand scope and intent.
  3. Add it to the project board with status “Needs Refinement”, assign an initial priority, and place it in the next sprint.
  4. Refinement discussion - during the weekly refinement meeting the team discusses the issue. If everyone understands it, it is story-pointed and its priority is evaluated.
  5. Ready for sprint - once refined, the issue moves to the “Next-Up” column and is available for sprint planning.

Meetings

Joining meetings

We are working on making all meeting links publicly discoverable. In the meantime, reach out on Zulip or Slack to receive a calendar invite.

MeetingCadencePurpose
Daily StandupEvery workdayCasual sync - not mandatory, not necessarily work-related
PlanningBiweekly (Monday)Review the Next Sprint view, agree on sprint goals
RetrospectiveBiweekly (Monday)Reflect on what went well and what to improve (invited members only to maintain a safe space for feedback)
RefinementWeekly (Thursday)Discuss items in “Needs Refinement” on the Next Sprint view, clarify scope, and story-point
WarroomEvery workdaySynchronous coordination on tasks or open topics
Community CallFirst Wednesday of the monthProject updates, demos, and open Q&A with the broader community
TSC MeetingFirst Monday of the monthGovernance decisions, SIG approvals ( meeting notes)

Decision-Making

Day-to-day technical decisions are made by the contributors doing the work, in pull requests and issues. For decisions that affect multiple areas or establish a precedent, the team uses Architecture Decision Records (ADRs).

Larger decisions that affect project direction are escalated to the TSC. The process is:

  1. Discuss in a GitHub issue, SIG meeting, or on Slack/ Zulip
  2. If consensus is not reached, bring it to the TSC agenda
  3. The TSC decides by majority vote (quorum: 50% of voting members)

For full governance details, see the Governance page and the Project Charter.

Communication Channels

For communication channels and how to reach the team, see the Community Engagement page.