Skip to content

Let's formalize the PSP adoption process #16

@mijustin

Description

@mijustin

I'd like to formalize how the Podcast Standards Project adopts new features and standards (how we move from idea to adoption).

One thing we're all learning: creating a broad consensus on adopting a new feature, across multiple companies + platforms, is challenging!

We need a clear, transparent process that balances community input with practical implementation.

We also need something that allows us to backtrack if we feel like a specific feature doesn't merit broad adoption.

Proposed Process

Feature/Standard Suggested → Discussion → Research → Vote (Yay/Nay) → Beta → Vote (Yay/Nay) → Standard Phase 1: Optional → Standard Phase 2: Required
Image

1. Feature/Standard Suggested

  • Features bubble up during our meetings (at events), in Slack, from user research, and from the Podcasting 2.0 community
  • If there's sufficient interest, we discuss it more formally

2. Discussion

  • Feature is discussed during meetings + Slack
  • Formal discussion should happen on GitHub as an Issue
  • "Feature Champion" should be assigned
  • Discussion of use cases, edge cases, and alternatives

3. Research

  • "Feature Champion" goes out and does research
  • Answers these questions
    • What kind of appetite is there from Creators/Listeners for this?
    • What kind of appetite is there from Apps?
    • What kind of appetite is there from Hosting Providers?
  • What could this feature look like if we implemented it and standardized it?
    • Technical specification draft
    • Implementation requirements
    • Demo

A good example of this phase is what @albertobeta did here:
https://docs.google.com/document/d/1ByqYF0Rwmio9ugDkVg4_6wHXc8bjRBcMab5SLXrlzqg/edit?tab=t.0#heading=h.32lc1e4nrou8

4. Vote 1: Proceed to Beta?

  • Entry: Research phase complete
  • Voting Body: PSP Steering Committee [to be defined]
  • Threshold: [Supermajority / Consensus - TBD]
  • Question: "Should this proceed to beta testing?"
  • On Failure:
    • Proposal can be revised and resubmitted
    • Or marked as "Postponed" with clear reasoning
    • Champion may appeal decision

5. Beta

  • Entry: Vote 1 passes
  • Requirements:
    • Implementation guide published
    • Test suite/validation tools available (if applicable)
    • Regular status updates from implementers
  • Tracking:
    • Which platforms/apps have implemented
    • Issues discovered
    • User feedback and adoption metrics
  • Refinement: Minor adjustments allowed; major changes require returning to Research
  • Exit Criteria:
    • Successful implementations in production
    • No critical unresolved issues
    • Demonstrated real-world value

6. Vote 2: Adopt as Standard?

  • Entry: Beta period complete
  • Voting Body: PSP Steering Committee
  • Threshold: [Supermajority / Consensus - TBD]
  • Question: "Should this be adopted as an official PSP standard?"
  • Review Materials:
    • Beta implementation report
    • Community feedback summary
    • Any changes made during beta
  • On Failure:
    • Continue beta with specific improvement goals
    • Or sunset the feature with documented reasoning

7. Standard Phase 1: Optional

  • Entry: Vote 2 passes
  • Status: Officially recognized PSP standard
  • Expectation:
    • Platforms/apps MAY implement this feature
    • Should be documented in official PSP specifications
    • Implementations should follow the standard specification
  • Purpose: Prove broad adoption and stability

8. Standard Phase 2: Required

  • Entry: Demonstrated broad adoption during Phase 1
  • Status: Core standard
  • Expectation:
    • PSP members a required to support this feature
  • Note: True "required" status may only apply to specific categories (e.g., "video podcast apps MUST support HLS")

Special Paths

Withdrawal

  • A proposal can be withdrawn at any stage by the champion

Fast Track

  • For urgent security fixes or critical compatibility issues

Rejection/Postponement

  • Failed votes don't mean permanent rejection
  • Proposals can be revised and resubmitted
  • Clear reasoning must be documented

Examples from Other Standards Bodies

  • IETF: Internet-Draft → RFC with rough consensus
  • W3C: Working Draft → Candidate Recommendation → Recommendation
  • TC39 (JavaScript): Stage 0-4 with clear advancement criteria
  • Python PEPs: Draft → Discussion → Acceptance → Final
  • Rust RFCs: Pre-RFC → RFC → Implementation → Stabilization

===

What are your thoughts on this process?

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions