How we use RFCs

Reading time2min


Updated


Author
Bu Kinoshita

An RFC, or “Request For Comments” is a detailed technical document we use to start new projects.

Sharing ideas, issues, and improvements is great, but documenting the problem, researching how to solve it, and describing the best way to release it is better.

Types of RFCs

  • Idea proposal: We always have great ideas from time to time, but just sharing is not enough in a fast-paced company. We document, prioritize, and ship it.
  • Complex bug: It usually comes from the user's feedback. We log the user's bugs and track them on Linear. When we notice an increase in the bug happening, we document to understand and share context with everyone and come up with better solutions to solve it.
  • New feature: The RFC helps us understand and do research about the problem and solutions. It also helps us understand the scope and complexity of the project, map technical details and their impact, and how the release plan.

Why do we write RFCs

Having the RFC document written down is really helpful for a remote team to collaborate and share context and ideas async. It's been extremely important to us to understand the entire scope and size of the project. It allows us to do deeper research on the problem we're trying to solve.

It facilitates feedback and drives consensus. It is not a tool for approving or committing to ideas but more so a collaborative practice to shape an idea and to find serious flaws early.

How do we write RFCs

Here's a summary of the template we use.

# Purpose
Describe the specific problem or opportunity for the problem.
# Background
Context and detail the current situation and how we've acted on the problem.
# Proposal
Outline the proposed solution or change.
# Technical Details
Dive into the technical aspects of the proposal. Map the changes we must make in each service, the database changes, and prototypes.
# Implementation Plan
We break down into phases, each phase should have a goal for us to release in production incrementally.
# General Questions
Answered questions that people may have about the proposal suggestion.
# Open Questions
Open questions to everyone to contribute and help evolve the RFC.

Discussion

After the RFC is written, we share it on Slack so everyone can see and collaborate on the discussion and decisions regarding the proposal.

We use Notion to write and document the RFCs, so people leave comments on certain parts of the proposal with suggestions or questions to be followed up by the writer or others.

When everyone is happy with the decision, we move the RFC to Approved.