Skip to content

Instantly share code, notes, and snippets.

@samkit-jain
Created September 20, 2021 14:54
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save samkit-jain/6880f34571f19f31bed6c92d86f28cbc to your computer and use it in GitHub Desktop.
Save samkit-jain/6880f34571f19f31bed6c92d86f28cbc to your computer and use it in GitHub Desktop.

Title

Status (Draft / Under Review / Approved / Deployed)
Targets (Backend / Frontend)
Author(s) Names of the people writing the RFC
Developer(s) Names of the people responsible for the implementation of the RFC
Reviewer(s) Names of the people verifying the RFC
Updated YYYY-MM-DD

Objective

This is an high level overview of the problem you are trying to solve and why.

Important Links

List down any important links here. For example,

  • Link to the Product Requirements Document (PRD)
  • Link to the Figma file containing the design changes

Success Metric(s)

List down the metrics that will help define the success of the RFC implementation. Also include how are you going to measure the metric.

Background

Provide a background to the problem. You can go in as much detail as required. It should be detailed enough that if a random developer reads it, they acquire full context on the problem and the necessity of the solution.

Proposal

Given the background above, propose the solution here. Include a brief explanation of the solution. Include the "how" and "why" with the details in the "Impelementation" section below.

Implementation

Explain the implementation details here. API changes, UI changes, UX changes, ... This section should also be as much detailed as possible. Detailed enough that if a developer not originally a part of the development team is introduced, they should be able to just refer to this section and start coding.

Typing out the implementation often serves as "rubber duck debugging" and you can catch a lot of issues or unknown unknowns prior to writing any real code. Or, it may result in the realization that the proposed solution in this RFC is too complex given the problem.

Alternatives Considered

What were the alternatives considered and why were they not selected?

As RFC goes under review, some proposals may change and in rare cases, be abandoned altogether in favour of a better solution. Include those here as well.

Question(s)

Record question and answer interaction between the reviewers and the authors here.

Deployment Timeline

This section is updated after the RFC has been approved and then moved up below the Objective section.

Started on - Date on which the actual work started.
Development environment - Estimated date on which the changes will be live on the development environment.
Staging environment - Estimated date on which the changes will be live on the staging environment.
Production environment - Estimated date on which the changes will be live on the production environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment