For a while now, we’ve been thinking about how to better incorporate the community into the PowerShell language design process. We believe this would improve PowerShell by:
- Ensuring we prioritize on language features that the community cares about.
- Helps us understand where to focus our efforts on features most important to the community and not spend time building language features that won’t be used.
- Getting diverse feedback during design and not after features have already been coded and released.
- Helps us to consider alternative design proposals and avoid making breaking changes due to late feedback
A Request for Comments (RFC) is a type of document used broadly in the industry, in various forms, as a way to collect feedback from customers and partners. We are adopting this concept as a way to get feedback on language design documents.
This is something that is new to us, so we are starting small (think of it as a minimal viable product). For this initial release we’re not soliciting external drafts of proposals for language features. We would like to do a trial run with a single draft proposal to iron out any issues with the process. The PowerShell language team is relatively small, so I want to ensure we are capable of actively reviewing and responding to feedback on a timely basis. Once we agree we have a good process in place, we‘ll look at opening it up for public draft proposals as well as consider having specific community members help as moderators and editors.
We’ve seen other teams and projects (C# and F#) use this approach successfully, and we’ve modeled ourselves off of the Chef RFC process with some learnings from my previous experience as a member of the DMTF.
Currently, we have just one draft proposal available for comments. We are doing this on GitHub and the tooling is more suited for code than for specifications so the current thinking is to use an issue per document to track comments. We are particularly interested in feedback on this process. Thank you!
Principal Software Engineer Manager