Describes how and when to make a request for comments

If the team proposes to make important changes to the project, do not make decisions in a hurry.

A request for comments is a document that covers proposed changes to product or system, brought up by the team.

This document serves 2 purposes:

  • Communicate upcoming changes to a product
  • Place to gather feedback about the change from wider team. This is very useful because folks may spot items that you missed or didn't think about.

RFCs is a great tool in your toolbox in order to build alignment across your organization, it promotes transparency and

When do you need to make an RFC?

You need to make a change request if you want to make significant changes to the project. These changes include:

  • When we are looking to make a substantial change that will span multiple teams and/or multiple internal services (either from process or code perspective).
    • For example, we want to introduce a new type of payment method (i.e. not just additional payment gateway to a known payment method). This will likely require an update in user, payment, order components (whether services or modules).
    • Another example, we want to change our formula for calculating the number of items that are available for sale right now to allow appropriate levels of backorders when we know that items will be in our warehouse by specific date.
    • For example, we want to integrate with Salesforce to automatically recalculate the score of customers on our side based on information in Salesforce. This change will affect teams supporting internal systems as well support agents and their process will need to be updated (of course they should be part of a working group for a solution of this change).
  • When we want to communicate change and align all team members on a technical approach for a new project.
  • When we are asking to make a large technology change (change database, change language for a service, platform, etc).
    • For example, we've been using Elasticsearch for full-text search on a site, however after doing enough tests and POC we've identified that by using MeiliSearch we'll get such and such benefits, hence proposing this change.

When you do not need to make a change request:

  • When changes you are going to make are transparent that don't affect outputs of specific processes.
  • When you are not looking to replace or introduce any new technology.
  • When changes are encapsulated within a service or a team (depending on your team structure and org chart).

How to create an RFC

For the successful acceptance of the proposed RFC, it is necessary to prepare and check if the existing proposal absent in the list of previously rejected functions or in the nearest roadmap. Seek feedback from other project developers and reach consensus on the need for an RFC. The change request must have a complete description of the change and the requirements for it. It is also necessary to draw up use cases for which the proposed change is directed and the implementation process is proposed. The RFC is a document that is submitted and aligned with the full team about the changes.