Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial SIP process proposal #21

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open

Initial SIP process proposal #21

wants to merge 13 commits into from

Conversation

aaronsteers
Copy link
Contributor

@aaronsteers aaronsteers commented Oct 25, 2021

I've incorporated all feedback and this is ready for final review. If no significant changes are requested, we can open voting as described herein!

Addresses #12

@aaronsteers aaronsteers added this to Draft Proposals in Working Group Topics Board Oct 26, 2021
@aaronsteers aaronsteers moved this from Draft Proposals to Up Next to Review in Working Group Topics Board Nov 30, 2021
@aaronsteers aaronsteers moved this from Up Next to Review to Reviewing in Working Group Topics Board Nov 30, 2021
@visch
Copy link
Member

visch commented Nov 30, 2021

Looks good to me, great start, should be able to iterate on this as we move forward!

@pnadolny13
Copy link

@aaronsteers the one things that not totally clear to me from reading the proposal is how the votes are conducted. Is the expectation that voting will happen during the live working group meetings?

I feel like we should probably allow for async voting too. Maybe we mention all voters in the PR a week prior to the upcoming meeting so that everyone has a chance to vote async and explain their reasoning, or not vote at all but at least they have a chance. I'm concerned for the case where theres a limited turnout for a meeting for whatever reason and were voting on a major proposal. In addition to or as an alternative we could also do a minimum vote count for a proposal to go through which could solve the issue too.

What do you think?

@aaronsteers
Copy link
Contributor Author

aaronsteers commented Nov 30, 2021

@pnadolny13 re:

...the one things that not totally clear to me from reading the proposal is how the votes are conducted. Is the expectation that voting will happen during the live working group meetings?

I feel like we should probably allow for async voting too. Maybe we mention all voters in the PR a week prior to the upcoming meeting so that everyone has a chance to vote async and explain their reasoning, or not vote at all but at least they have a chance.

I like this idea a lot! I would certainly be open to async voting and ratification. The ideas I've had so far would be (1) votes in the text of PR comments, (2) emoticons on the PR, (3) Slack emoticons in our private channel.

To encourage candor and reduce noise of other community members potentially adding their own comments which could get jumbled with the votes, I increasingly feel like the most efficient approach would be to run the vote in Slack and then later pass on the results back to the PR once the vote has closed.

What do you think?

In addition to or as an alternative we could also do a minimum vote count for a proposal to go through which could solve the issue too.

Agreed on the need for some minimum "quorum" of voters in order to ratify. 👍 I don't know what the right minimum should be but likewise with the above, I'm happy to work this back into the proposal text.

@pnadolny13
Copy link

@aaronsteers

The ideas I've had so far would be (1) votes in the text of PR comments, (2) emoticons on the PR, (3) Slack emoticons in our private channel.

To encourage candor and reduce noise of other community members potentially adding their own comments which could get jumbled with the votes, I increasingly feel like the most efficient approach would be to run the vote in Slack and then later pass on the results back to the PR once the vote has closed.

Thats a good point it could get hard to track if other community members are commenting too. I like the slack idea for a final vote. Maybe we notify everyone a week beforehand by slack and by posting in the issue that the proposal is under review and voting has started, including the "vote by x" date. They can write issue comments with thoughts and discussion but they cast their final vote in slack, then when voting closes the tally gets posted to the issue.

Agreed on the need for some minimum "quorum" of voters in order to ratify. 👍 I don't know what the right minimum should be but likewise with the above, I'm happy to work this back into the proposal text.

My first thought is that we have our official list of representatives (idk if this exists or not) and we just need quorum (more than half) in both respects:

  • a quorum of voters to cast a vote
  • of that quorum who casted votes, a quorum of "accept" votes for it to pass

What do you think about that?

Copy link

@dmosorast dmosorast left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Happy New Year! Getting back into this. I want to give a +1 to all of the above. I've included a bit of that in my comments, some are requested changes (just wording related) while others are proposals of spelling more things out.

Feels like there's a balance we need to strike here between being too prescriptive and being too loose. We'll learn how best to do this overtime so it may be good to keep it more open, but setting up for a consistent and clean Singer-Working-Group primary repo seems like it'd be beneficial at this stage.

- [ ] Singer best practices and other guidance
- [x] **Singer Working Group - practices and procedures**
- [ ] Singer documentation (Other)

### Are there any downsides to this change?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This question should be more direct like the other questions, i.e., "What are the downsides to this change?" to go along with "Which layer(s)...", "Is the change..", "How are Singer developers...", etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmosorast - Thanks for this. I've updated the prompt to be more direct.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmosorast - Re:

Feels like there's a balance we need to strike here between being too prescriptive and being too loose. We'll learn how best to do this overtime so it may be good to keep it more open...

I agree. And I've added a section to allow small edits/tweaks to incorporate our learnings over time via simple PR approval (along with a required changelog per doc) rather than requiring a full new process. While we certainly would want this "Edit" process to be used to slip in huge alterations, I think at least some flexibility is important to give us more confidence we can continue to to iterate based on learnings.


### Phase 2: Create the proposal doc

When you are ready to draft the proposal, create a new branch starting with the issue number followed by a dash (`-`). Copy the [document template](../template.md) and fill out the proposal template. Commit to your branch, push, and then open a new PR that links back to your original issue.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be good to have examples for each step just to align on formatting in the text here? Like do we want a specific prefix to scan issues for proposals more easily? Should we follow a hyphenated pattern for the rest of the branch? Underscores? Etc.

Open Issue of the format: Proposal: Add Widget to Singer
Create branch example: 14-add-widget-to-singer

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, should this talk about working from a forked version of the repo to submit a PR? Should we add branch protections rules to this repo to require N reviewers for merge, etc?

This may be more operational concerns we can work out outside the scope of this, but curious if there should be any sort of guidance to keep the practice organized and keep this repo a bit clean.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmosorast - Thanks for this. I've added example file names and branch names, just be very explicit, per your suggestion. I've also added guidance that creating on the main repo and on a fork are both completely okay.


The working group will pick 1-3 topics each month to review from those in "Ready for Review" status. Once selected for review, update the doc status to "Reviewing" and enter the comment-by-date deadline here into the proposal document.

Over the course of review, the working group members may add comments and suggestions to the pull request directly. The author may likewise update the proposal text to address any submitted feedback. Authors should update the "Date Updated" field in the doc whenever changes are applied.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems to me that this would be better written more directly for the responsibilities of the author to keep the review moving forward. Something like:

If changes to the text of the proposal are needed as a result of the review process, the author(s) must update the relevant proposal text to address this feedback to continue moving forward in the review process. Author(s) must also update...

This might feel a bit more formal than a standard PR review process, but it is more formal, trying to align everyone. It kind of also brings to mind the question of adoption of an orphaned proposal or adding authors, etc. That could be left alone for now though, I think. Just a curious thought.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmosorast - Agreed! I've updated the wording to be more clear, per your suggestion.


### Phase 4: Approval or Non-Approval

SIPs will be approved if consensus is gained from the majority of working group members. Each member company may vote "Strong Yes", "Yes", "No", or "Strong No". To be approved, a proposal requires a simple majority of "Strong Yes" or "Yes" votes from member companies and no "Strong No" votes from the working group leadership team.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the discussion here about a quorum and referring to Slack voting (or just maybe mentioning a generic poll to not be too tool dependent in the text) and timespan that a voting poll will be open. Feels like that should be included here as part of the practices.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmosorast - Per our meeting last month, I've added a lot more clarification now on how this will work.

### Other Considerations

1. We may want to incorporate into the process a set of rules for what is in or out of scope for this working group.
2. We should plan for the process (or at least the proposal template) to evolve over time.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thinking about this. I think the git repo is a good way to allow for individual evolution over time of concepts (since everything's recorded with a history), but for making these changes, seems like that should be another process (maybe another SIP so as to not bulk this one up too much. If the group determines that would be good to have.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dmosorast - Thanks for these thoughts. I've added a section about "Lifecycle Edits" - which intended to cover small clarifications/updates being okay by simple PR approval, with examples of what significant updates would and would not be appropriate for that process.

Hopefully this sets at least a framework for small iterations/improvements that's not overly cumbersome.

@aaronsteers aaronsteers self-assigned this Feb 22, 2022
group/index.md Outdated Show resolved Hide resolved
@aaronsteers
Copy link
Contributor Author

From @pnadolny13:

@aaronsteers the one things that not totally clear to me from reading the proposal is how the votes are conducted. Is the expectation that voting will happen during the live working group meetings?

I feel like we should probably allow for async voting too...

What do you think?

Thanks for this feedback! After meeting with our new Leading Members team (new page added on Leadership here in the PR), I've updated the proposal with the async voting details, as you propose. 👍

There's now a specific async voting and vote scoring process documented in the PR.

- [x] **Singer Working Group - practices and procedures**
- [ ] Singer documentation (Other)

### What are the downsides to this change, if any?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned in the Feb meeting, I'd like to propose that this not have any sort of language like "if any" to strongly encourage documenting the thought process that went through thinking about downsides, since there are always some kinds of downsides to any change (e.g., influencing a process towards a specific direction, less flexibility in some use cases, effects if someone is using a different language/platform/orchestration tech, etc.), and perhaps connecting this to alternatives, potential weaknesses, etc.

In this proposal, there aren't many clear downsides, other than the ever present scary unknowns. It might be worth poking holes in the potential weaknesses of the voting approach, maybe what happens if this process turns out to be too rigid, any potential for locking proposals in a back and forth, etc.

Otherwise, at least acknowledging the research that went into this SIP and the feeling that, given that, it is at least a good starting point would be good to mention here I think :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

Meta topic: Process for proposals review and discussion, aka Singer Improvement Proposal
4 participants