4 exercises — structuring an RFC document, responding to a -1 objection, raising a well-supported technical concern, and moving a stalled RFC toward consensus.
0 / 4 completed
1 / 4
You want to propose a significant architectural change to a project that uses an RFC (Request for Comments) process for major changes. Which opening for your RFC document is most effective?
Option B follows the standard RFC document structure used by major open-source projects (Rust RFCs, Python PEPs, and similar processes all share this shape):
Why each section matters: 1. Summary — one or two sentences, readable without any other context, so busy maintainers can decide in seconds whether to read further 2. Motivation — grounded in real, cited evidence (three specific issue numbers) rather than opinion ("it would be much better" is not a motivation, it's a conclusion). Shows the problem is real and recurring, not hypothetical 3. Guide-level explanation — describes the proposal from the user's perspective with concrete examples, so reviewers can evaluate the actual experience, not just the abstract idea 4. Drawbacks — proactively naming the costs (new API surface, added complexity) builds credibility. RFCs that only list benefits read as unbalanced and invite reviewers to hunt for the drawbacks themselves, which is a slower and more adversarial review process 5. Alternatives considered — shows you explored the design space, not just the first idea that came to mind. Reviewers frequently ask "did you consider X?" — pre-answering this saves review cycles
Why "I already built a prototype, let's just merge it" undermines the RFC process: The entire point of an RFC is design consensus BEFORE implementation. Presenting a fait accompli pressures reviewers to either rubber-stamp sunk-cost work or reject something someone already invested real effort in — both bad outcomes. Prototypes are fine as supporting evidence, but should be framed as "an exploration, not a final implementation."
Why the one-line pitch fails: An RFC without motivation, drawbacks, and alternatives gives reviewers nothing to evaluate except vibes. Substantive architectural discussions require substantive documents.
2 / 4
In an RFC discussion thread, a core maintainer comments: "I'm -1 on this as currently proposed — the plugin API surface is too large and will be hard to keep stable across versions. Have you considered a narrower hook-based approach instead?" How should the RFC author respond?
Option B is the correct way to respond to a -1 (formal objection) in an RFC discussion:
Understanding RFC voting language: Many projects use a lightweight +1/-1/+0/-0 convention borrowed from consensus-based processes (similar to Apache-style voting). A "-1" from a core maintainer is a real signal that typically blocks acceptance until addressed — it is not the same as a casual disagreement in a code review comment, and should be treated with more weight.
Why this response works: 1. Treats the -1 as useful information, not an attack — "that's useful signal" reframes disagreement as part of the design process working correctly 2. Asks a targeted clarifying question — "which parts of the API surface concern you most" — narrows the disagreement to something addressable, rather than treating the whole RFC as rejected 3. Proposes a concrete compromise, informed by their own read — separating a narrower first RFC (before/after hooks) from a later, more ambitious one (transform pipeline) directly responds to "the surface is too large" by making it smaller 4. Frames the split as validated by evidence — "once we have real usage data" — shows willingness to let real-world use inform the larger, riskier part of the proposal instead of committing to it up front 5. Ends with a direct, answerable question — "would this address your concern?" — moves the discussion toward resolution rather than a prolonged back-and-forth
Why immediately withdrawing is premature: A single -1 with a specific, addressable concern ("too large a surface") is often resolvable through scoping — withdrawing loses the motivation and design work already validated by the community, when a narrower version might still be viable.
Why "I disagree" without engaging the specific concern is unproductive: It restates your position without incorporating the maintainer's point about long-term API stability, which is a legitimate, common concern for anything shipped as a public plugin API — those are hard to change once released, unlike internal implementation details.
3 / 4
You strongly disagree with an RFC someone else proposed — you believe the "narrower hook-based approach" it suggests will require a breaking change again in a year, once real plugin authors hit its limits. How do you raise this objection constructively in the RFC thread?
Option B is a well-constructed formal objection with actionable substance:
Structure that makes disagreement productive: 1. States the position clearly with the vote convention — "-1" — unambiguous, using the community's established signaling language rather than vague hedging 2. Grounds the concern in experience, stated concisely — "built two plugin systems professionally" — establishes credibility without over-explaining, then immediately backs it with a concrete mechanism rather than resting on authority alone 3. Gives a specific, concrete failure scenario — the `beforeBuild(config)` example with resolved dependency graph — this is the single most important part: a vague "this will need breaking changes" is easy to dismiss, but a specific example of what breaks and why is not 4. Offers two concrete resolution paths — extensible hook payloads (a design fix) or explicit versioning expectations (a scoping fix) — gives the RFC author actionable options rather than just a rejection 5. Offers further help — "happy to sketch option (a) in more detail" — signals the objection comes from wanting the RFC to succeed, not from wanting to block it
Why "trust me, I've built plugin systems before" fails without the concrete example: Appeals to authority without specifics are unfalsifiable and can't be evaluated by other reviewers who don't know your background. The specific `beforeBuild` example lets ANY reviewer, regardless of their own experience, evaluate whether the concern is valid.
Why silently disagreeing ("not my call") wastes the RFC process: The entire purpose of RFC review is to surface exactly this kind of expertise before the design ships, not after. Withholding a substantive technical concern because "it's not my call" defeats the purpose of open review — anyone with relevant experience is expected to weigh in.
Why rushing to a vote is usually premature: RFC processes exist because premature votes lock in designs before concerns are fully explored — "let's just vote" pressure, especially applied to someone raising a substantive technical concern, tends to suppress exactly the kind of feedback the process is designed to surface.
4 / 4
An RFC you proposed has been open for discussion for three weeks with mixed feedback — two maintainers are supportive, one raised concerns that you've since addressed with a revision, and the discussion has gone quiet for a week. How do you move the process forward?
Option C is the correct way to drive an RFC toward resolution without being pushy or presumptuous:
Why this works: 1. Summarizes current state for anyone rejoining the thread — reviewers who haven't read every comment can quickly understand where things stand without re-reading three weeks of discussion 2. Explicitly connects the revision to the specific objection — "addresses @maintainer-A's API-stability concern" — shows the objection was taken seriously and acted on, not just noted 3. States a specific, dated deadline for silence to become consent — "if no further objections by [date]" — this is standard practice in formal RFC processes (Rust's "final comment period," Apache's lazy consensus) and gives the process a natural endpoint instead of drifting indefinitely 4. References the project's own stated process — "following this project's stated RFC process for the comment period" — shows you're working within the established rules, not inventing a shortcut 5. Leaves the door open — "flagging in case anyone wants another look" — ensures the deadline doesn't feel like it's designed to sneak the RFC through unnoticed
Why "no news is good news, I'll just merge it" is risky: Silence in an RFC thread often means reviewers are busy, not that they've implicitly approved — merging without an explicit consent mechanism (like a stated comment-period deadline) can trigger a late objection after implementation work has already started, which is far more costly to unwind.
Why withdrawing after one quiet week is premature: Two of three maintainers were supportive and the sole objection was addressed — this is a good position, not a failing one. RFC threads commonly go quiet simply due to maintainer bandwidth, not disapproval; a structured, dated follow-up is the appropriate next step before concluding the proposal lacks support.
What will I practise in "RFC Process Communication"?
This module focuses on Open Source Contribution — real workplace phrasing you'll use on the job. It contains 4 scenario-based multiple-choice questions with instant feedback.
Is this exercise free to use?
Yes. Every exercise on CoderSlingo, including this one, is free to use with no account or sign-up required.
How many questions does this exercise have?
This module includes 4 questions. Each one gives an immediate right/wrong result plus a full explanation of the correct phrasing.
What happens if I answer a question incorrectly?
You'll see the correct answer highlighted straight away, along with a plain-English explanation of why it's right and why the other options don't fit — mistakes are part of the learning here.
Can I retry the exercise if I want a better score?
Yes — use the 'Try again' button on the results screen to reset your score and go through the questions again. There's no limit on attempts.
Who is this Open Source Contribution exercise for?
It's aimed at IT professionals with working English who want to sound more natural and precise around open source contribution — useful whether you're preparing for real conversations at work or just building confidence with the vocabulary.
Do I need an account to track my progress?
No account is needed. Your progress through the exercise is tracked locally in your browser for the current session, and you can replay the module at any time.
How is this different from reading a blog article?
This exercise is an interactive drill that tests and reinforces specific phrasing through multiple-choice questions with instant feedback, while blog articles explain concepts and vocabulary in prose. The two work well together.
Where can I find more Open Source Contribution exercises?
See the Open Source Contribution hub for more modules like this one, or browse the full Exercises page for other IT-English topics.
Can I complete this exercise on my phone?
Yes — every exercise on CoderSlingo is fully responsive and works on phones and tablets, so you can practise anywhere.