Internal Rfcs Saved Us Months of Wasted Work
Key topics
The debate around Internal RFCs (Requests for Comments) has sparked a lively discussion, with many engineers weighing in on the benefits and drawbacks of this approach to project planning. Proponents argue that RFCs promote clarity, precision, and stakeholder engagement, saving months of wasted work by forcing authors to structure their thoughts and anticipate potential issues. However, some commenters caution that RFCs can be vulnerable to being ignored or becoming outdated, and that ticketing systems can suffer from "Goodharting" when metrics are used as a proxy for productivity. Despite these concerns, a consensus emerges that writing down proposals, even if time-consuming, is a valuable investment in clear thinking and project success.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
49m
Peak period
57
Day 6
Avg / period
18
Based on 72 loaded comments
Key moments
- 01Story posted
Dec 10, 2025 at 12:57 PM EST
23 days ago
Step 01 - 02First comment
Dec 10, 2025 at 1:46 PM EST
49m after posting
Step 02 - 03Peak activity
57 comments in Day 6
Hottest window of the conversation
Step 03 - 04Latest activity
Dec 19, 2025 at 7:40 AM EST
14 days ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
That said, a ticketing system should ostensibly offer this same effect, but in my experience they're often populated with brief titles and maybe a short paragraph on expectations.
In other cases, it can be very tactical. I think you are right, probably it can be expressed directly in the form of a ticket. The discussion well happen in the comments to the ticket in this case.
Anything that will prompt stakeholders to engage and clarify expectations is a win. It's hard to make this happen even when everybody is philosophically aligned on the need to do so, so reframing it as an RFC could be quite the useful "One Weird Trick" ;-).
If the ticketing system were private to the engineers, it probably would serve the same purpose. But inevitably ticketing systems have wider visibility, and become a mechanism for signalling progress to management/product/sales... at which point engineers are actively incentivised not to put actual data in the ticketing system
> Another advantage of the document over verbal explanation is that a well-written RFC leaves little room for misinterpretation. It can include diagrams, examples, or calculations to illustrate and support the idea.
> Finally, we can return and reread the RFC later. Human memory is unreliable; already after a day, details that were crystal clear in one’s mind start to get blurry. When these details are written down, it is easy to review them at any time.
‘You have to write things down, because spoken words disappear into the air,’ was one of the first bits of feedback I received in my teacher training.
> The most common objection is that writing proposals is “a waste of time” compared to writing code.
The extra time spent writing is actually spent thinking.
> The extra time spent writing is actually spent thinking.
Common theme for decades is "we can save a few days of planning with just a few weeks of programming".
But then there's the darker realization that sometimes the people you are working for are incapable of reasoning about planning artefacts or understanding how the system will look or operate simply from a document. So you need to present the system in small iterative chunks and repeatedly re-align expectations with reality: Agile.
And sometimes you genuinely need to do exploratory work which doesn't fit into a planning framework - actual research!
I’m wrestling with this now. Over my career I’ve seen a strong correlation between good writers and good software engineers, but not everyone fits this mold. Shorter cycles and more chances for communication and feedback are helpful here.
> The extra time spent writing is actually spent thinking.
Until someone decides that using ChatGPT to write your RFC is a good idea. Then you get something that looks great, but the person behind the prompt actually understands less.
- Douglas Adams, "Life, the Universe, and Everything"
(It took an unreasonably long time to find this quote!)
Every time someone throws a document written by AI at me, it feels so disrespectful.
So it's possible to leave it to developers, but expect a high quality spec along with the code.
I am right and my son is right, but his hair is still not washed.
I became a more effective manager and a better father when I learned how to talk to him better.
I also don't get your son's response at all. How is he contradicting you at all and how does that lead to unwashed hair?
I ask my team to clarify requirements better. They say that they already have Jira. It's as if they were implying that the presence of a tool (Jira) should be enough to provide clear stories. But it's not about the tool. It's about them not using the tool properly but pointing at the tool (or process) as an excuse.
I ask my son to wash his hair. He says there is shampoo in the shower. It's as if the presence of the shampoo implies that his hair should be clean. It's not about the lack of tooling, but about the fact that he did not wash his hair with the tool that he had available.
People often blame tooling or methodology, but most often its that they don't know how to use the tooling or methodology well. They will say things like "if we only used X our problems would go away." Most likely, they won't.
I posted a lazy comment earlier because I did not have time to type it out. Apologies.
RE: your work, I would probably fight hard to reduce all the bureaucracy-inviting tools (like Jira). That removes the excuse "we have tools already, why don't we have clear stories?" -- though I am aware that for many people this fight would cost them their job.
This is what user stories were supposed to accomplish in a more lightweight way.
The whole scrum DoR (definition of ready) status means that something is clear and ready for development.
Stories are written and are sent to the engineering team for clarification. This is where the comments are supposed to come in. There is a clear step for clarification of stories, before the story is ready for development. It becomes DoR when that clarification is done.
It does not matter if you use RFCs, user stories, or hallway conversations as your process of clarifying work. If it does not work, it does not work.
Any way you can get your teams to communicate more clearly is great.
Love this! Corollary: when you have too many meetings, that’s easy to notice. When you don’t have enough meetings, that’s harder to notice.
I’m in the process of carefully adding meetings and process to our small team of 6 (we had a PM from a large company drop in a few years ago and haphazardly add a bunch of process, and it didn’t really help).
We’re fully remote and have a daily huddle and, on average, 1 hour of meetings a week. It turns out this isn’t enough. So far, each bit of communication we’ve added has resulted in better outcomes and higher morale because we feel more like a team.
I've just left a company that used to have an internal RFC process and it was a very significant barrier to progress that stifled innovation, led to breakdown of working relationships and caused the most productive engineers to run for the exits.
RFC is a request for comments, and it turns out you have to be really careful about the kinds of comments you solicit and who from. As soon as you ask people to comment you are setting an expectation that you will take their feedback onboard and address their points, but there’s a real asymmetry here - it is much easier to leave a critical comment, or to ask a question, than it is to address the concerns or answer the question.
This asymmetrical nature puts much more work on the shoulders of the RFC author. Similarly, the people writing the RFC have typically thought much harder and longer and deeper about the problem than the people giving feedback on it. This leads to authors having to re-explain their thinking in detail, covering points that they’d omitted for brevity or because they are obvious to those with a good understanding of the problem.
Suddenly, the task changes from shipping the feature or making the change to achieving consensus on the RFC. I have seen that process take months - far longer, and being far more expensive than just doing the work would be.
The worst part is - no one is in the wrong! The authors write the RFC in good faith, the commenters review the RFC in good faith, and they rightly expect that any problems they identify are addressed. But the whole process can be soul crushingly slow, painful and full of professional conflict.
I’m not saying that RFCs are bad overall, but you have to have a culture of accountability, pragmatism and getting things done to actually make this process work.
In some cases I have seen, people use RFCs to steamroll decisions when they are the only stakeholders. Here the waste comes from the fact that the proposal becomes just a bureaucratic step or a way to diffuse responsibility.
In the case you mention (which I have seen many times) I would say the general issue is that the goals and the constraints are not qualified sufficiently. If that's the case, then there are only 2 cases: there is an objective way to measure if an objection or comment makes sense or not, or it is subjective. If it's objective, then consensus is easy to reach, if it's subjective, it needs to be acknowledged and usually the decisions falls on those who are responsible for the outcome (e.g., the team who needs to maintain or build the thing).
Of course, the debate can move to constraints, goals or even ways to measure, but these are generally more straightforward.
Really though it's the organization (and people) that makes or breaks anything.
For example, a broken RFC process might be a way not to actually involve and gain useful consensus from people (I.e., I did my presentation during the weekly session, nobody had feedback), which instead would be the natural way in a company without that process.
100% agree that it's all about the people (and the culture shaped by them).
IMHO there should be no gaps like that. If you already thought hard and long about these problems, why not just write all your knowledge down, so other people can benefit from that? Also, this makes your work a lot more accessible to those who came after you. Of course, you have to assume a certain baseline of knowledge. But if you already have a good understanding of the problem, why not formulate that as part of the RFC?
The point is that the author thought that they had captured enough information in their original draft - they can expand on that draft of course, but that's the issue - the task of writing the RFC can become much larger than just trying something out and getting real data.
This is literally the secret of every successful project I've worked on. An individual, with high agency and low communication overhead has either been trusted to take the task on themselves, or they've done it secretly to side-step the approval process and organisational overhead. When the foundations are in place it's relatively easy to add engineers, but starting something from scratch with a bunch of people? doomed before it starts in most cases imo
- This architecture binds us to AWS. Have we estimated the engineering effort to remain cloud-agnostic in case we need to move to Azure next year?
- I see we're using Postgres. Have we considered how we’ll handle horizontal sharding if our user base grows by 1000x in Q4?
- This synchronous API call introduces tight coupling. Shouldn't this be an event-driven architecture to handle back-pressure?
All sound like things that are easy to ask, sound prudent to management, but are impossibly expensive to answer or implement for a feature that just needs to ship.
It's alright to answer "No, we haven't done estimations for cloud-agnostic architecture as part of this project as it was deemed out of scope in this project. If we decide to go multi-cloud at some point in the future this will need to be reviewed with the rest of the existing infrastructure as part of the migration plan". If that kind of answer creates a problem, then the issue wasn't really to do with the RFC or the comments, it's just where the issue became apparent.
If in a PR I left the comment that 'This architecture binds us to AWS. Have we estimated the engineering effort to remain cloud-agnostic in case we need to move to Azure next year?", it would be bad form for you to ignore the question and merge. It would be totally acceptable to either say "no, I didnt take that into account and I think its out of scope" or "yes, and that will be tackled separately". And it should always come with a consideration that there might need to be more information added to the PR, eg adding clarifying comments to the code.
I think when most people reference saying "no" they are really referencing saying "no, %{backgroundOfWhy}" or similar often in a few short sentences, and that's great for everyone all around. It's just the literal "no" with no effort to engage or care about why they are asking that will leave a black mark of "Joe Schmoe is really great at delivering... when he feels like talking to you about things".
If Big Title wants to own the schedule impact they can make these demands.
Maybe I'm not read into the secret deal with Microsoft for next quarter that'll require all 3 of these.
And if you just take the time to spell out why the comments aren't relevant or actionable, then it removes some of the "say something to seem smart" dopamine hit, and prevents it in the future. It tangibly reveals to everyone working on the document that the person with the big title doesn't know what they are talking about. The person with the big title realizes that their bet to gain prestige actually backfired and they lost some, and doesn't repeat it.
You have to transform being technically incorrect, or distracting into an awkward social feeling. Widely visible docs accomplish that. That is the language the big title climbers intuitively understand, they play politics professionally, and losing face is a cost they care about, and know to avoid.
Of all the examples, this is the only one that stands out to me as "this should be considered if not already addressed" because its not always driven by a 1:1 correlation of user base of the product, depending on circumstances. This is where comments can actually be useful in consideration.
The rest feel more dubious to have to worry about upfront, or in practice, really at all.
There's nothing wrong with this. Being able to explain your thinking in detail to someone that doesn't necessarily understand the problem is a pretty good exercise to make sure you yourself fully understand the problem _and your thinking._ Of course, this can't turn in to a lecture on basic things people should know or have looked up before commenting.
It’s also probably worth being explicit that there is a cost to inaction that can exceed the costs of building the wrong thing. A year or two ago I was lead on a project where we didn’t know the answer to a big ambiguous problem—we just didn’t have a good way to get the information necessary to make the right decision—different people had different ideas about what we should do. So we identified the smallest thing we could build that would be useful such that we could get more information from real world use, knowing full well we might have to rebuild something else from the ground up. And we did! But we were able to get the confidence we needed to build the right thing later! And we got there much faster than if we had tried to deliberate and speculate about what that thing would be.
Also, in that saga, one engineer in particular was really adamant that we address his particular set of concerns. He was unable to disagree and commit—he was kind of religious about all concerns being addressed before moving forward with anything. He had a very difficult time understanding that the RFC process existed to meet business goals—the business did not exist to slot into his ideal RFC process. He is no longer with the company.
What I like about RFCs (or similar documents) is the ways they work to prevent this. Recently I was involved in planning an initiative without a document like this, and we had to keep explaining and re-explaining the motivation for our decisions to stakeholders and higher-ups. With a document (assuming everyone reads the document before giving feedback), most questions get pre-empted; the ones that don't only need to be addressed once, because the answers end up in the version of the doc which you show to the next person.
Certainly I think it's worth being selective about who you're soliciting comments from, to avoid a too-many-cooks situation, but rare is the project that doesn't need approval from someone. Presenting a big fat document gives a sense for the amount of thought that has gone into the design, which quells the kind of off-the-cuff "why not X?" comment you might get in response to a boxes-and-arrows chart and a high-level summary.
I.e. that culture of pragmatism needs to be defined as part of the process, not an unspoken promise between coworkers.
Architecture / Design review happens post proof of concept but still before any significant development work and major action items are blockers to beginning development. Further discussion about designs not chosen can happen here, especially when a flaw is uncovered that would be addressed by one of those not chosen.
That being said, this is improving in my team. And I think the stakeholders above me appreciate it.
I don’t care what format you use in terms of both process and also literal format. Just write shit down.
I got this idea from Netflix's founder's book "No Rules Rules" (highly recommend it)
Overall, I think the main idea is: context is what matters, and RFC helps you get your (mine, I'm the founder) vision into people's heads a bit more. Therefore, people can be more autonomous and move on faster.
https://productstrategy.co/working-backwards-the-amazon-prfa...