-
-
Notifications
You must be signed in to change notification settings - Fork 718
Draft: Docs/governance #2307
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
woutervroege
wants to merge
13
commits into
main
Choose a base branch
from
docs/governance
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Draft: Docs/governance #2307
Changes from 1 commit
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
2d321ff
docs: add MISSION.md
woutervroege 6bfa911
docs: add GOVERNANCE.md
woutervroege 9797448
docs: add HOW_WORK_FLOWS.md
woutervroege 2a1d23a
docs: add MEMBERS.md
woutervroege a41b516
docs: add CODE_OF_CONDUCT.md
woutervroege 9dbde7d
docs: add BUGS.md
woutervroege e2d375a
docs: add RFC_PROCESS.md
woutervroege 84094b7
docs: add RFC_TEMPLATE.md
woutervroege 33aecd6
docs: add TEAM_OPERATIONS.md
woutervroege 0ef80de
docs: Add pre-code contributions section to CONTRUBUTIONS.md
woutervroege 3a488ff
docs: iterating docs and creating cross links
woutervroege c517ca0
docs: cross-linking
woutervroege 24205a7
Merge branch 'main' into docs/governance
woutervroege File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
docs: add TEAM_OPERATIONS.md
- Loading branch information
commit 33aecd66950292f2c875ba613298f5c4c8e2daef
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,216 @@ | ||
| # Team Operations | ||
|
|
||
| This document describes how the core team collaborates day to day to plan, prioritize, and deliver work. It complements higher-level documents such as **How Work Flows**, **GOVERNANCE**, and the RFC process by focusing on practical execution rather than decision authority. | ||
|
|
||
| The goal is to provide clarity without bureaucracy, and to support a small, senior team working on an open-source library used by a diverse community. | ||
|
|
||
| --- | ||
|
|
||
| ## Operating Model | ||
|
|
||
| The project uses a **Kanban-style, continuous flow** model rather than time-boxed sprints. | ||
|
|
||
| This approach is chosen because: | ||
|
|
||
| - Work arrives unpredictably (bugs, community input, enterprise needs) | ||
| - The team is small and context switching is common | ||
| - The project values flexibility and transparency over fixed commitments | ||
|
|
||
| --- | ||
|
|
||
| ## Work Streams | ||
|
|
||
| All work falls into one of three streams. These streams share the same board and flow, and are distinguished by labels or swimlanes. | ||
|
|
||
| ### 1. Maintenance | ||
|
|
||
| Includes: | ||
|
|
||
| - Bug fixes and regressions | ||
| - Stability, performance, and infrastructure work | ||
| - Small refactors and technical hygiene | ||
|
|
||
| Maintenance work is governed by the bug triage process and maintainer judgment. | ||
|
|
||
| --- | ||
|
|
||
| ### 2. Discovery | ||
|
|
||
| Discovery work focuses on reducing uncertainty before committing to delivery. It may or may not lead to implementation. | ||
|
|
||
| Includes: | ||
|
|
||
| - Early idea exploration | ||
| - Exploration to reduce technical, UX, or API uncertainty (for example research, prototypes, or throwaway code) | ||
| - RFC preparation and refinement | ||
|
|
||
| Discovery work is typically time-boxed and produces learning or clarity rather than shipped features. | ||
|
|
||
| --- | ||
|
|
||
| ### 3. Delivery | ||
|
|
||
| Includes: | ||
|
|
||
| - Implementation of accepted RFCs | ||
| - Small changes that do not require an RFC | ||
|
|
||
| Delivery work turns approved decisions into shipped code. Acceptance of an RFC enables delivery, but does not guarantee prioritization. | ||
|
|
||
| --- | ||
|
|
||
| ## The Board | ||
|
|
||
| The team uses a single shared board to track work. | ||
|
|
||
| ### Columns | ||
|
|
||
| - **Inbox** – Untriaged ideas, bugs, and requests. No commitment. | ||
| - **Ready** – Work that is understood and allowed to be started. | ||
| - **In Progress** – Actively worked on items. | ||
| - **Review** – Work awaiting review or feedback. | ||
| - **Done** – Completed and merged work. | ||
|
|
||
| The board is an operational tool, not a roadmap. | ||
|
|
||
| --- | ||
|
|
||
| ## Ready Criteria | ||
|
|
||
| An item may move to **Ready** when: | ||
|
|
||
| - The scope and intent are clear | ||
| - It is appropriate to work on | ||
| - Bugs are classified by severity | ||
| - Features either have an accepted RFC or are explicitly deemed not to require one | ||
|
|
||
| The Ready column represents permission to start work, not a priority order. | ||
|
|
||
| --- | ||
|
|
||
| ## Prioritization of Ready Items | ||
|
|
||
| Prioritization determines what the team focuses on next from the Ready column. It does not affect what is allowed to be worked on. | ||
|
|
||
| ### How Prioritization Works | ||
|
|
||
| - Prioritization happens collaboratively, typically during the weekly sync | ||
| - Product proposes a focus based on user needs, enterprise context, and strategic considerations | ||
| - Engineering provides input on technical risk, sequencing, and capacity | ||
|
|
||
| The outcome is a shared agreement on near-term focus, not a binding commitment or delivery promise. | ||
|
|
||
| ### Roles and Responsibilities | ||
|
|
||
| - **Product** facilitates prioritization by surfacing context, trade-offs, and suggested focus areas | ||
| - **Maintainers** retain authority over technical feasibility and sequencing | ||
| - **No single role owns prioritization**; decisions are made through discussion and consensus | ||
|
|
||
| High-severity maintenance work (for example P0 or P1 bugs) may be prioritized immediately regardless of other Ready items. | ||
|
|
||
| --- | ||
|
|
||
| --- | ||
|
|
||
| ## Roles in Day-to-Day Operations | ||
|
|
||
| ### Maintainers | ||
|
|
||
| Maintainers: | ||
|
|
||
| - Own technical decisions | ||
| - Triage and classify bugs | ||
| - Review and merge pull requests | ||
| - Decide how work is implemented | ||
|
|
||
| --- | ||
|
|
||
| ### Product Management / Product Owner | ||
|
|
||
| Product management supports execution by: | ||
|
|
||
| - Curating the Inbox | ||
| - Facilitating bug triage | ||
| - Helping prepare items for Ready | ||
| - Translating accepted RFCs into epics or work items | ||
| - Proposing focus and sequencing | ||
| - Communicating status externally | ||
|
|
||
| Product does not assign work or override maintainer or TSC authority. When acting as Product Owner, product operates strictly within accepted scope. | ||
|
|
||
| --- | ||
|
|
||
| ### Technical Steering Committee (TSC) | ||
|
|
||
| The TSC is not involved in daily operations. Its role is to: | ||
|
|
||
| - Accept or reject RFCs | ||
| - Ensure alignment with the project mission | ||
| - Guard long-term technical direction | ||
|
|
||
| --- | ||
|
|
||
| ## Cadence | ||
|
|
||
| ### Daily | ||
|
|
||
| The team uses a lightweight, asynchronous daily check-in (for example via chat): | ||
|
|
||
| - What was worked on | ||
| - What is planned next | ||
| - Any blockers | ||
|
|
||
| --- | ||
|
|
||
| ### Weekly Sync | ||
|
|
||
| A weekly sync (30–45 minutes) is held between engineering and product. | ||
|
|
||
| Typical agenda: | ||
|
|
||
| 1. Review completed work | ||
| 2. Review items in progress | ||
| 3. Review Ready items | ||
| 4. Time-boxed triage of Inbox items | ||
|
|
||
| The outcome is shared alignment on near-term focus, not delivery commitments. | ||
|
|
||
| ### **Reflections and Continuous Improvement** | ||
|
|
||
| The team periodically reflects on how it works together and may adjust practices as needed. | ||
|
|
||
| Reflections are lightweight and focused on identifying friction, validating what works well, and experimenting with small improvements. They are not performance evaluations and do not produce formal action plans. | ||
|
|
||
| --- | ||
|
|
||
| ## Decision Recording | ||
|
|
||
| Synchronous discussions (for example chat or calls) are encouraged for speed and alignment. However, decisions that affect others or have lasting impact should be recorded in GitHub. | ||
|
|
||
| As a general rule: | ||
|
|
||
| - Decisions may be made synchronously | ||
| - Outcomes should be summarized asynchronously in GitHub issues, pull requests, or RFCs | ||
|
|
||
| This ensures transparency, long-term traceability, and shared understanding across the project. | ||
|
|
||
| --- | ||
|
|
||
| ## Guiding Principles | ||
|
|
||
| - Keep work visible | ||
| - Limit work in progress | ||
| - Prefer flow over fixed plans | ||
| - Optimize for trust and clarity | ||
| - Avoid process that does not clearly add value | ||
|
|
||
| --- | ||
|
|
||
| ## Relationship to Other Documents | ||
|
|
||
| - **How Work Flows** describes the conceptual lifecycle from ideas to code | ||
| - **RFC Process** governs significant technical decisions | ||
| - **GOVERNANCE** defines authority and decision rights | ||
| - **BUGS** defines bug reporting and triage | ||
|
|
||
| This document focuses exclusively on how the core team executes work within those constraints. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the clarity / actionability of this doc!