Software projects
Write a feature request around a user problem
Describe who needs the change, the task they are trying to finish and the obstacle in their current workflow. Explain any workaround and the outcome they need. Then add your proposed solution, distinguishing actual constraints from details that could be solved in another way.
Who is affected (role, not a name): [ ] Task they are trying to complete: [ ] Current behavior, step by step: [ ] Where it fails, slows down or confuses: [ ] How often this comes up, and how I know: [ ] Current workaround: [ ] Cost of the workaround: [ ] Desired outcome: [ ] Required format, compatibility or workflow constraint, and why: [ ] How we would know the problem is solved: [ ] Optional solution idea: [ ] Alternatives I considered: [ ] Related existing requests or issues: [ ] Information I do not have: [ ]
Keeping the request about the problem
Explain why each constraint matters. If users cannot export to CSV, say what they need that format for; another tool may require it. Distinguish this requirement from a preference for a particular button or screen. Describe the workaround and its cost using what you know. If you have evidence from one person, do not write as though it represents everyone. Label your feature idea as a proposal and keep the underlying task clear so maintainers can consider alternatives that meet the same need.
Read this feature request and my proposed solution. List each part of the proposal that does not address the obstacle I described. Then say whether a smaller or different change would remove the obstacle, and point out any claim about users that I have not supported.
Test the request before sending
Ask someone unfamiliar with your situation to restate the problem in their own words. If their version differs, revise the obstacle section. Check whether the project already has a similar request and link to it instead of duplicating it. Review the project's issue guidance for required fields, then post the request where the project tracks ideas.