liberapay.com icon indicating copy to clipboard operation
liberapay.com copied to clipboard

Team votes

Open Changaco opened this issue 2 years ago • 1 comments

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: #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 #505 and #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 avatar Mar 18 '22 16:03 Changaco

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.

biskwikman avatar Jun 21 '22 16:06 biskwikman