DEV Community

Cover image for Writing RFCs
Carlos Cuesta
Carlos Cuesta

Posted on • Originally published at carloscuesta.me

Writing RFCs

A Request For Comments also known as RFC, is a process that captures ideas and proposals about a specific topic to discuss and find consensus ๐Ÿค.

An RFC involves a document or a series of documents ๐Ÿ“‘, which are drafted, reviewed and eventually approved or rejected by a group of people.

What are the benefits?

Planning

Writing down your idea into a document will clarify your thoughts and will help organizing them in a structured manner.

Anticipating ๐Ÿ”ฎ the problem you aim to solve and envisioning potential solutions is key to identifying issues and edge cases.

Alignment

As a team, it's important that decisions ๐ŸŽ™๏ธ are made by reaching a consensus ๐Ÿค. It's very common that as humans we have different opinions and points of view.

RFCs are an effective process to include everyone's opinions ๐Ÿ’ญ and reach a decision everyone agrees with.

Documentation

The document ๐Ÿ“‘ itself is a valuable piece of documentation as it captures the context, the problem, the solution, and the decision-making process.

It will serve as a reference for future team members and will help them understand the context and the reasoning behind the decisions made โฃ๏ธ

An RFC is usually the initial step in the decision-making process before creating Architecture Decision Record which I previously wrote about โœ๏ธ

Better decision-making

One of the steps of the process is to share the RFC with the team to collect feedback and review the context and the proposed solution.

Involving multiple people ๐Ÿง  in the decision-making process is key to achieve high quality decisions, as it will bring different perspectives and solutions to the table reducing the chances of overlooking important details.

You can think of it as a code review, but for ideas and proposals.

When you should write an RFC?

It depends ๐Ÿ™ˆ but generally I would recommend writing them when dealing with high-impact decisions and major changes that require consensus and alignment such as:

  • Introducing a new service in your company ๐Ÿš€
  • Major changes in the architecture ๐Ÿ—๏ธ
  • Big features that have an overarching impact ๐Ÿ†•

It's up to you to decide when to write them, but in my opinion you should weight โš–๏ธ the effort ๐Ÿฅต and the impact ๐Ÿ’ฅ since it's a time-consuming process that involves many people.

How to write an RFC

Define a template

When writing them, a common practice is to have a template to write โœ๐Ÿผ all the documents in the same way.

You'll find a lot of templates online, but this is the one I use ๐Ÿ‘ˆ

RFC Template

โ—๏ธ Use a tool that allows collaborative features (comments, suggestions etc) to make it easier for the team to review and provide feedback such as Google Docs or Notion.

Share document for review

Once you have the document ready, share it with the team for them to review ๐Ÿ‘€ and provide feedback.

Address feedback

After the reviews come in, you should address the comments, questions and concerns and incorporate any suggestions if appropriate ๐Ÿ–Š๏ธ.

Make a decision

Finally, after the document has been reviewed and the feedback has been addressed and collected, it's time to make a decision.

The team should either approve โœ… the RFC and move forward with the proposal or reject โŒ it.

Examples

In case you're looking for inspiration, there are many organizations and communities that use RFCs to propose and discuss new ideas, here are some examples:

Conclusion

RFCs are a powerful process to gather feedback, align the team and document decision-making. They're a great way to reach consensus as a team representing everyone's opinion.

I encourage you to give them a try and see how they can help you and your team to make better decisions! ๐Ÿซฐ

Top comments (0)