A look inside our internal Requests for Discussion process.
Overview
The article discusses the RFD (Requests for Discussion) process implemented by Oxide Computer Company, detailing how ideas are documented, discussed, and iterated upon within the organization. It emphasizes the importance of capturing ideas transparently and provides a structured workflow for creating and managing RFDs, akin to the IETF's Request for Comments.
What You'll Learn
How to create and manage Requests for Discussion (RFDs) in a software development environment
Why documenting ideas early in the development process can enhance collaboration
When to transition RFDs through different states from ideation to published
How to utilize Git for version control in the RFD process
How to effectively discuss and iterate on RFDs with team members
Key Questions Answered
What is the purpose of Requests for Discussion (RFDs) in software development?
What are the different states an RFD can be in during its lifecycle?
How can team members contribute to the RFD process?
When should an RFD be merged into the master branch?
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Key Actionable Insights
1Implementing an RFD process can significantly improve idea management within your team.By documenting ideas early and allowing for iterative feedback, teams can ensure that all voices are heard and that ideas are refined before implementation.
2Utilize Git branches effectively to manage the RFD lifecycle.Creating separate branches for each RFD allows for organized development and discussion without disrupting the main codebase, facilitating smoother collaboration.
3Encourage team members to engage in the RFD discussion process actively.Fostering an environment where feedback is welcomed can lead to better ideas and more robust solutions, ultimately enhancing project outcomes.
4Regularly review and update RFDs even after they are published.This practice ensures that the documentation remains relevant and reflects any changes or improvements made to the processes or ideas discussed.