Making Change Less Scary with RFCs

What is an RFC?

RFC stands for “request for comments.”

  • It is a process for a consistent and controlled path for contributing new ideas.
  • Commonly adopted in open source (React, Rust, etc.)

Why RFCs?

Allow you to democratize how you make decisions in an open, repeatable process.

RFCs are for everyone!

  • Anyone can submit
  • Anyone can implement
  • Can be used by teams
  • Can be used across teams

What makes a good RFC?

Ideas that would benefit from additional review or design are great RFC candidates.

The Process

You already do it…

The Process

  • Create an RFC document detailing your proposal.
  • Submit a PR to the RFC repository
  • Incorporate feedback into the proposal
  • After discussion, the core team may or may not accept the RFC.
  • If the RFC is accepted, the PR is merged

The Components

The legos that make an RFC

The Components

  • Summary - One paragraph explainer
  • Motivation - The what and the why
  • Detailed design - Implementation details
  • Drawbacks - why not do this?
  • Rationale & alternatives - impact of not implementing
  • Unresolved questions - WIP

Example

Futures over Streams

Additional reading

Making Change Less Scary

By Ryan Edge

Making Change Less Scary

  • 132