I prefer private anonymous voting much more but will still vote if it is public.
As a point of clarification, Tim has mentioned on the PR that my understanding of his position was wrong, in his own words:
I haven’t said I won’t vote if the ballot is public, just that I probably won’t. That’s how I’m leaning .
Voting for a government is very different from voting on a technical proposal, and that’s very broadly accepted. That’s why, e.g., I don’t believe anyone has ever suggested that votes for the PSF Board be wholly public - or in just about any other organization. Contrarily, nobody ever asks that +1/0/-1 polls on technical issues be made private.
Voting for a governance structure isn’t wholly in either camp, which is why I’m only “leaning” so far. It’s close enough to “pure politics” that it makes me queasy. If, e.g., the PSF membership decided to vote for its Official Religion, I’d resist making that a public vote too .
Sorry for my error here!
Polls help, but this certainly isn’t binding. It’s to get a sense of how people feel in a compact way. Note that this is specifically about the vote on the governance PEP. There is no implication or intent that it would apply to any other vote for anything else. According to the poll author, voting for a governance structure is somewhere between voting for government officials (which “almost everyone” agrees should be private) and voting on technical proposals (which “almost everyone” agrees should be public).
Note that “private” here means the ballots will still be made public, but without personal identifying information. So you can still see every ballot, but not who cast any ballot.
- Ballots must be public.
- Ballots must be private.
- I prefer that ballots be public.
- I prefer that ballots be private.
- I don’t care either way.
I think defaulting to private is better. Anyone who wants their vote to be public can still publish it in the voting thread.
Right - if someone wants others to know how they voted, they can just tell them. Although they can’t prove they voted that way if ballots are private.
Which is one major reason for why private ballots are all but sacred in “political” matters: if A can’t see how B voted, then A can’t intimidate or bribe B to vote the way A wants them to do. Well, they can try, but who’s going to pay me a fortune to vote for their favored PEP if they can’t verify that I actually did? If I’m corrupt enough to bribe, I’m probably corrupt enough to lie too. Similarly for after-the-vote purges of “enemies”.
So it’s really about people wanting to know how others voted, even when the latter don’t want their vote known. For which there are many possible morally suspect motivations. And possibly some admirable motivations too, but I really can’t think of a good reason for why I should be able to know how you voted on this issue. That anonymous ballots are public is sufficient to ensure that anyone can independently verify they were tabulated correctly, scour the ballots for signs of “strategic voting” (which isn’t illegal anyway), and so on.
People being people, I’d rather cut off any possibility for, e.g., “Ms X rated her own PEP first? Selfish!” or “Ms X rated her own PEP last? Hypocrite!”. At some point “openness” and “transparency” are outweighed by “ignorance is bliss” .
I certainly won’t be abstaining because of ballots being private, but I’m actually kind of baffled about why people are so in favor of private ballots here, which usually means that there’s some important perspective I’m missing
The main argument for private ballots in real-world votes is to prevent vote-selling and other forms of coercion. I don’t think that really applies here (though maybe this is my privilege showing?).
For F/OSS projects, we have a general bias towards openness and transparency, and in particular, the ideal for decision making is open discussion and consensus. For the governance discussion, I have some ideas about the different options, but I want to know what other people are thinking too, because I am a highly fallible mortal, and usually in discussions I learn new things and my opinions become better. I feel like voting at all is a sad and unfortunate thing to do, since it misses out on the opportunity to listen and explore ways to reconcile different perspectives, and end up with something that really reflects the best our community can do. Of course there are still cases where we have to give up on that ideal and vote (esp. in a case like this where we need to not just agree, but have some common knowledge that we’ve agreed), but my bias is that even in those cases we should try to keep things as close to the conversational ideal as we can manage.
One specific reason not to would be if we were voting on people, because doing that in public creates all kinds of potential awkwardness. But that’s not what we’re doing here.
Another concern that @dstufft raised earlier is that public ballots allow for more tactical voting, but I don’t think that’s a serious issue with “pure Condorcet” – the options for tactical voting here are extremely limited.
So like I said, I’ll go along with whatever people want, but if someone can explain more about why they like private ballots here, I would appreciate it. I would like to understand where you’re coming from!
@dstufft: On a slight tangent: do you know if CIVS allows people to change their votes? We’re looking at something like a two-week voting period here, so if I vote on the first day and then discussion during that period makes me change my mind, can I change the vote, or am I stuck with my old vote that I now disagree with?
Another reason that updating votes could be useful: in the unlikely event that we have a tie and need to re-vote, I think it would be better to carry over votes for people who don’t revote. Doing otherwise risks disenfranchising people who are exhausted with the whole thing. If we’re voting in a github repo where we can edit our votes, then we get that for free, but if a system like CIVS allows us to do the re-vote by keeping a single election open and allowing people to update their votes if they want, that seems better to me than re-starting from scratch.
I think of it less in terms of coercion and more in terms of extrinsic motivations, one of which could be coercion, but could also include other less obvious forms of extrinsic motivations. A simple example is that someone who wrote a PEP might actually like another PEP better, but feel obligated to support their own PEP if they are publicly attaching their name to a ballot. When ballots are secret people don’t have to worry about any sort of optics for how they might vote, they can vote their true preference regardless of any sort of external pressure that may exist.
A private ballot doesn’t prevent discussion, nor does a public ballot aid in discussion. There should be nothing preventing people from discussing things as it is, the fact that people aren’t really might be sad, but it doesn’t seem to be an effect of the voting system. In fact the only way I can imagine a public ballot could aid in “discussion”, is that it would allow people to see before the vote is over if their favorite option is losing, and try to apply pressure to other people to change their vote (or put their first vote) to favor the outcome that persons likes. IOW, a public ballot during the election doesn’t seem like it helps anything except to make it possible for people to do the sort of political pressuring that people generally find unpleasant. A public ballot after the fact can’t aid discussion, because at that point the decision has already been made.
IOW, the time for debate and discussion is now, not once we know for sure how people are voting.
CIVS does not appear to allow someone to update their vote and as part of it’s goals to prevent a election supervisor from being able to influence the votes, it doesn’t even make the results available until after the election has been closed (at which point the election can’t be re-opened anyways). So using CIVS would mean that we’d have to effectively run a whole new election. In my PR I limited the tie breaking elections to only be the choices that participated in the tie/cycle (IOW, the run off election is only amongst those in the smith set). That way people who would be happy with any of those choices can “check out” at that point.
@njs, I’m going to approach this from the other end, but first a digression. In CIVS terminology, we’re doing what they call a “private” poll regardless. Meaning that only people with a known email address can vote. In a CIVS “public” poll, anyone in the world with the election URL can vote.
None of that has anything to do with whether ballots are associated with personal identifying information. That part is controlled by this section when a poll is created:
Enable detailed ballot reporting.
Which we want, so that everyone can see all the ballots (for verification, analysis, curiosity, whatever). Once that option is selected, another option appears:
In detailed ballot report, also reveal the identity of the voter with each ballot.
And that’s the only option that has to do with “public” vs “private” in the sense being used in this thread. It’s orthogonal to CIVS’s “public/private” distinction. By default, that option is not selected, so it’s “private” by default in this thread’s sense.
Now regardless of any of the choices made above, CIVS will not allow anyone - not even our election supervisor - to see partial results while the vote is in progress. It’s only when the election is closed that CIVS will reveal results.
At that point, what good would it do to reveal voter identities? The discussion already ended, and indeed the vote already ended. Because people are human, there is potential for some to dig through the voting info to nurse, or create, grudges. I just can’t see any compensating upside. Can you?
The poll I created here is in the context of Donald’s CIVS suggestion (which I like). If we’re foolhardy enough to try to roll our own voting system on the fly (“what could possibly be hard about an election?” - heh), then it may actually be difficult to do what’s being called “private” here. But it’s as easy as merely not overriding a default under CIVS.
That’s the “bottom up” reasoning for me. Top down, it’s human psychology to me: regardless of whether they’re aware of it, if someone’s ballot is publicly associated with them, their vote will be influenced by how they expect others to perceive & judge their choices. The more purely “tech” the decision is, the less those largely subconscious pressures matter. But few of us are professional philosophers with highly developed theories of governance. It’s enough of a burden for most of us to struggle with our own best understandings of the implications of these non-tech decisions. The parts of us worried about how others will perceive us drive us toward pack-animal behavior regardless of our best tenuous understanding of the actual issues.
Keeping ballots anonymous can short-circuit most of that, reducing stress and freeing up more energy to focus on making the “objectively” best decision possible, based solely on what we believe to be the merits and demerits of the proposals.
There is a third problem – at least in consideration for using CIVS – is it also requires having a clean list of email addresses to send ballots to. ATM we totally lack that, so we would have to take the time to actually collect those email addresses (probably in a private repo where people add their email address to some list or something since we can’t trust python-committers to be clean and GitHub doesn’t require access to someone’s email address).
Are there voters who don’t participate in PSF Board elections? Dunno. Email is very much a part of the Helios voting process those elections use.
I tossed together a quick script to seed a CSV out of what Github does make public.
It basically generates two outputs, a CSV of
github username,email or blank if none , plus a list of github usernames that we need email addresses for, based on who is currently in the
python-core team. Looks like there is 40 names we currently need email addresses based on Github.
So it seems like the right thing to do is make a quick private repo using the output of that script, ask people to modify that file to add their email address (or change one if they don’t like the address Github has for their public email address). And then post the emails needed issue which will notify each of the people who we don’t have an email address for, as well as posting a message to discourse and python-committers telling people to check it out, and if they aren’t on the list they won’t get a ballot.
If someone comes part way through and asks to be added to the ballot, CIVS allows you to add more people after the fact, as long as the election hasn’t ended, so the risk of losing someone (who otherwise would have voted in the git repo style) should be minimal.
I guess I should say, if nobody has an aversion to this. I’ll set up a private repository later today and do this. I think it would be a worthwhile thing to have anyways, as a record of who was a “registered voter” at the time of the election anyways.
This also will quite possibly not be the last time we need such an email list, so having the script available along with a place already in existence to go and get email addresses as appropriate would be a great thing to have when the time comes again (even if we have to start the actual list of emails from scratch again as necessary).
Yes, I don’t move in these circles.
In the spirit of making this more general, I’ve gone ahead and enhanced the script a little bit to generate the file directly and to also support the ability for people to, in that private repo, add their email to a “permanent” file mapping github usernames to email addresses for future voter rolls that get generated.
And one more follow up, I’ve sent the email to python-committers now (archive view).
Oh yeah, keeping the votes secret during the vote and then revealing them at the end doesn’t make any sense. That would be the worst of all worlds :-).
When I say “public ballot” I’m imagining something like PEP 8001’s current text, where the core devs are able to see the votes, and modify their own vote, all the way until the end. Basically the same experience as these Discourse polls we’ve been running.
Huh, I think these polls are actually a good example of how a public ballot can aid in discussion! I wasn’t saying anything about the advantages of public ballots before, because I genuinely had no idea that anyone would disagree :-). And this discussion would be going very differently if the poll were sitting at 9:1 in favor of public ballots, or 5:5, instead of 9:1 in favor of private like it is now.
Of course, maybe everyone else thinks this discussion is useless, or that my posts here are “political pressuring”. I hope not. The reason I started this subthread is that the poll revealed a substantial gap between how I understand things and how other folks understand things, and IME it’s often useful to explore those, because there are all kinds of possible beneficial outcomes: (a) it turns out that I’m the only one who’s thought of some critical problem and everyone changes their mind!, (b) it turns out that I’m the only one who missed some critical problem, so I switch positions and now we have a unanimous vote!, (c) it turns out that we’re not actually talking about the same thing in the first place (the idea of keeping the votes private during the election and then revealing them definitely never occurred to me), (d) when the side in the minority realizes that they’re in the minority, they become suddenly motivated to find some compromise that makes everyone even happier than any of the original options, (e) nothing changes but people on the losing side at least have some time to get used to that idea and feel that they at least made a full case for their position, (f) … well you get the idea …
I guess we could get many of these advantages by holding a Discourse poll ahead of time.
I am quite concerned about being able to change votes, and especially about the following scenario, which seems very possible to me:
- We announce the start of actual voting
- People start actually reading the PEPs, now that they have to do something about them
- They start posting about things they like/dislike
- In the resulting discussion, we realize that a PEP has some issues, or someone comes up with a wildly popular new idea
- Oh crud now we’re running an election that we know doesn’t have what we actually want in it
Merely being able to adjust votes doesn’t totally solve this, but it definitely mitigate things a bit. In the vote-by-Github-commit model in the original PEP 8001, if we do end up with new ideas happening during the poll, we would have lots of options to smoothly adjust course, e.g. announce that we’re extending the voting period a week and ping the people who’ve already voted to make sure they know about what’s and have a chance to adjust their votes.
I agree. How about starting a poll on the governance PEPs? Perhaps in @vstinner’s new
There’s no reason “the vote” needs to be the only summary of opinions.
Note: I made the poll here public deliberately, to counter my own obvious bias in favor of not making the CIVS ballots identifiable. If, e.g., someone was just knee-jerk opposed to ever attaching their name to anything, I expected they’d leave a public poll untouched. So making this poll public was “a ploy” to ensure that only people who thought there was something special about the governance vote that merited privacy would say so in public.
I wouldn’t object to a public poll on the PEPs either, although I can’t say whether that’s true of all the others who favored anonymous ballots.
I too would like it better if people could change votes, as often as they like, before the election ends. Against that, CIVS has battle-tested software to get everything else right.
So, if we use CIVS, that’s a tradeoff: people need to be aware that they cannot change their vote. And so they’d be well advised to delay voting until near the end of the voting window.
A good point: CIVS does not close the election on its own. Our election supervisor has to close it “by hand”. So if a slew of last-second voters speaks up saying they need a few more hours, they can get it.
Before then, I expect starting a Discourse approval poll on the PEPs would go a very long way toward spurring the kind of pre-vote discussions we all want to see, along with a (self-selected) sample of how people are leaning. You can change your votes in a Discourse poll as often as you like.
Too painful to be serious: instead of a poll just listing 7 PEPs, we could have a poll with the 7*6 = 42 distinct ordered pairs, where each voter picks the (up to) 7C2 = 21 pair rankings they prefer .
I quite like the idea of combining an official binding secret ballot on CIVS (with ranked ordering), and a dynamic straw poll of “most preferred proposal” on Discourse to help stimulate discussion and to let folks that choose to do so publicly state their preferred governance option.
For discussion purposes, vote splitting doesn’t matter much (it just shows up as a cluster of similar proposals getting chosen in the straw poll), and anyone reviewing the poll’s predictive power after the fact would compare it to the first preferences on the final ballots rather than the full ranked orderings.