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

Team votes #2135

Open
8 tasks
Changaco opened this issue Mar 18, 2022 · 1 comment
Open
8 tasks

Team votes #2135

Changaco opened this issue Mar 18, 2022 · 1 comment

Comments

@Changaco
Copy link
Member

Teams were always intended to work by consensus, and I started thinking about enabling team members to vote on some decisions directly through Liberapay even before it was launched, but 7 years later I still haven't gotten around to implementing it, and it looks like I also never opened an issue for it.

Decisions that could require a vote include:

  • adding a new member (I'm not sure if it should be before, in parallel to, or after the acceptance of, the invitation)
  • kicking out a team member (obviously the targeted member shouldn't be able to block the decision)
  • modifying the team's profile (as this isn't critical, it could be a vote in which acceptance is passive, meaning that the changes would be tacitly accepted if nobody has objected to them after some time has passed, perhaps one week) (relevant issue: Team page configuration changeable by any person of the team #1320)
  • modifying the takes (i.e. how much money each member receives through the team)
  • accepting or rejecting invoices submitted to the team (once this is actually implemented, see Transparent accounting for organizations #505 and A team should be able to join an organization #1108)
  • closing the team account
  • modifying the list of decisions that require a vote

This isn't a small feature, but in case someone wants to work on it, here is a basic checklist:

  • modify the database schema to store polls and votes
  • implement initiating a vote (including notifications to the other team members)
  • implement voting (including changing one's vote)
  • implement the closure of a vote (including the notification of the result and its application)

The votes to kick out a member and close a team should be implemented first, because these decisions already work by consensus but they require contacting support to ask me to make the changes manually.

Later, voting could be optionally extended to some or all of the other decisions listed above. Here is another basic checklist for that:

  • modify the database schema to store the list of decisions that require a vote in a specific team
  • ask the only member of a team to choose a governance model when they're about to invite someone to join it
  • implement voting to change the list of decisions that require a vote
  • implement voting on the decisions that can now optionally require a vote

Related issues: #1948, #2094, #2123.

@Changaco Changaco added the good first issue suitable for new contributors label Mar 18, 2022
@Changaco Changaco added this to the Team management milestone Mar 18, 2022
@biskwikman
Copy link
Contributor

I think something to consider with this is the threshold for a vote to pass. I think unanimous votes would be a pretty high bar, and also probably impossible in some cases because of inactive users.

Also, I think having a time limit for voting might be a good idea. For example, if someone doesn't vote within 1 week of the poll opening, they could be excluded from the final count.

@Changaco Changaco removed the good first issue suitable for new contributors label Jul 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants