PSF Board Election Reform

If we think of the PSF Board as being representative of the Python Community, and making decisions on behalf of the community, then there’s three things I think about a lot in terms of that representation:

  1. Regional representation
  2. Project representation
  3. Board member responsibilities and compensation

(1) we’ve already started talking about here, and I am strongly in favor of making the board seats regional and having voters self-select the region they would like to vote for. If this means changing the board seats, let’s do it, and I believe in our excellent infra team’s ability to make an election like this happen.

(2) I’ve chatted about with some board members already, but the core argument goes like this: some members Python community feel less affinity for their regional group, but a ton of affinity for their Python project group. Making up some examples, a Django developer in Des Moines or a Numpy developer in Nome will feel more affinity and representation with those projects than with their region. I would argue that the decisions in the world of Python that affect those projects are more important to Pythonista than the regional decisions. These project-based Pythonistas are less well represented by regional coverage, so what do we do about that?

(3): By making membership on the PSF Board a purely volunteer effort, we are saying something about the people we want to be on the board. Namely, we are saying that we only want people who have the socioeconomic status that lets them dedicate large chunks of time to a volunteer effort. This is equivalent to most American City Councils, and is why you get affluent retirees making up so much of the representatives there. It’s not really a surprise to me that so many of the board candidates are employees from large Silicon Valley companies, because being an employee at one of those companies often gives you more flexibility to do work like being on an Open Source board of directors.

What do we do about (3)? We combine the PSF Ambassadors idea with a reasonable compensation model. We turn being a board member into a paid part-time job, and place expectations on those members that part of being a Board Member is spending time out in the community being an ambassador. This would be a self-funding effort, I believe, because part of that time would be spent helping Betsy and the PSF staff fundraise for the PSF.

With this, we’ve hopefully opened up PSF Board Membership to a wider group of Pythonistas, because we’ve reduced the number of people needing to choose between “serving their community” and “making rent”.

I recognize this is a fairly radical departure from where we are today, but I feel it’s pretty important to point out the implicit bias towards certain socioeconomic groups in our current board practices, and suggest a way forward out of it.

Thanks for starting this, Lorena, and I’m excited to see where the discussion goes.


Hi folks,

First, thank you to everyone who ran in the election. The entire slate was very strong, and I was pleased to see more geographic representation than ever. Also, congrats to the incoming board members and a huge thank you to the outgoing board members for your service. (A heartfelt thank you to Naomi for your leadership since 2015.)

For background, I served on the Board from 2015 to 2017. During this time, the board did discuss regional representation and term limits. As the primary role of the Board is to carry out the PSF mission, I’m pleased to see that folks are looking at the possibility to change the board structure. The PSF’s impact globally has improved each year since 2015, and I’ve seen how the PSF’s grant program has helped grow and strengthen communities.

Discussions about the following would be good starting points for any future governance change (bylaws update) for the board:

  • Term limits (perhaps 2 consecutive) as turnover is a sign of board health

  • Regional representation for Board positions (perhaps by continent less Antarctica)

  • Possibly a Regional Council Workgroup to offer additional ways to support regional leaders and growth

  • Additional communication about the ability to become a voting PSF member especially as a Contributing Member where a financial donation is not required instead it is based on time donated to the community (I realize that this is a time burden for some. I’m not saying its the ideal solution but another option that folks may not have heard about.)

tldr; Keep the discussion going and sharing creative options for improvement.



I assume that the intention is that whatever changes are proposed will be put to a vote of the membership. Is that right?



This is the issue I mentioned above that can happen as long as plurality (aka block) voting is used. In plurality voting, a minority of voters can wind up electing all the seats, with a majority of voters not electing any of their preferred candidates. This will still be an issue even if the election is done in two rounds.

Using the single transferable vote (aka preferential voting) would address this because the counting method ensures that nearly all voters would get to elect a candidate they prefer.

It would also address Phil’s point that some voters might value certain things more than geographic region:

As another example, someone might prefer supporting candidates that would result in greater gender diversity on the Board, regardless of what region they’re from. Put another way, STV would let voters self-organize into “constituencies of interest” that may or may not be geographic constituencies.


Are you confusing your own opinion with objective truth?

I voted for 4 candidates (3 of them didn’t get elected, incidentally). So, obviously, not all voters believe, like you do, that « 80% (or more) clearly satisfied the criteria — they were all them great candidates who would be acceptable on the board ».

If some voters don’t want to be selective and apply critical thinking, then good for them. But some do.

1 Like

Hi Antoine. Hmmm.

I was trying to convey how the election came across to me, and the thoughts I had at the time, and afterwards about the process and the result. I thought I’d expressed that…

It seemed to me that the form encouraged voting for all suitable candidates rather than just 4 (say). That was all.

Beyond that I do think an all good candidates filter phase would be good, for the reasons I gave. (That’s opinion too :grinning:)

Sorry if I upset you. That wasn’t my intention.

Depending on the nature of the changes, yes it may require a member vote.

:wave:t3: :wave:t3:,

Today the PSF Staff posted 2020 Python Software Foundation Board of Directors Election Retrospective and Next Steps with membership stats, voting stats, and information on next steps. I think this information can be useful in helping consider feedback on election reform.


Lorena, would it be possible for the PSF to release the anonymous list of cast vote records (CVR’s) for the election? This would be the list, for each ballot, of the candidates voted for on that ballot. Doing that would let people see things like what percent of voters didn’t elect a candidate that they voted for. Right now there’s no way to tell what that percent is, as well as related information.

My understanding is that this is not possible using our voting platform (helios) and that ballots are private by design.


Now that the new Board has met and our July meeting has been scheduled, please note that this thread will be closing at23:59:59 AoE July 28th 2020. Thank you!

While I absolutely am so proud of the very committed new Directors who were elected in the latest election, I was definitely disappointed that a number of African, Asian, and Latin American candidates who looked equally great didn’t make the threshold to win seats.

In part, I see that as a drawback of the staggered terms. If 11 seats were contested in this last election, the result would have shown more regional diversity. Or at least, I think it is very likely so; of course there would have been some additional candidates since at least several existing members would have run presumably. With just a top 4 vote getters, it skews towards familiarity by existing community members.

I like the idea of regional slots for future elections. I feel strongly that any such regional identification should be a self-identification. Many people who were born in, or have deep ties to, Africa, Asia, and South America, go to school or work in Europe, Australia, and North America. But also, some people were born one place and move as children to a different place, and identities are complicated.

I also would like such regional slots to be more a nudge than a reserved position. For example, we might have a desire to have more Directors from the Global South, but I don’t think we should per se have a reserved position. Rather, I think that filling such a “boosted” position should be subject to a rule like “If a candidate from an underrepresented region gets at least 50% approval, a boosted position is filled before a general position.” Or maybe rather than raw approval rate, consider special slots from the top-10 vote getters, but allow that perhaps in this election no such Director is sufficiently highly approved.

Obviously, as well, boosting regional representation should be subject to the current makeup. If we reach a point where North America and Europe are no longer over-represented, the boosting procedure should be suspended for the election.

@tiran This is brilliant! Setting a maximum on regions is really much more elegant than my idea of “boosting” votes towards regional balance.


I’m an election wonk. I designed the election procedure for the PSF. I’ve worked in election advocacy organizations… if Uncle Timmy Peters is watching, he’ll chime in even more strongly with the below :-).

Using STV rather than Approval Voting is extremely likely to decrease rather than increase diversity of results. There a zillions of pages of academic work around this, but even if not immediately intuitive, I am nearly certain this would be the result.

Just to be clear. I am NOT comparing STV to Plurality Voting, or “First Pass the Post.” The current PSF elections are not those, they are Approval Voting. These are very different systems.


@EWDurbin, @cjerdonek I do not think Helios currently allows the export of anonymized full ballots. But what they store would allow doing so in principle. I bet if we were nice to Ben… or made a PR to the repo, we could make that happen.

That is a side issue to whether we feel it is important enough to do. The raw anonymized ballots have a lot of data… but I am 100% certain nothing will just jump out as obvious distortion without a great deal of data analysis, and even conclusions reached with analysis will be subject to contrary analysis. That’s not bad… it’s just not going to be discovering that one “eureka” glitch in the process.

1 Like

The theory of multi-winner elections is even more confusing and paradox-ridden than for single-winner elections :face_vomiting: Ways to achieve “proportional representation” (PR) based on approval voting were pioneered in the US by Jefferson (the Prez) and Webster (the dictionary guy). Indeed, the US House of Representatives is a kind of PR.

Schemes devised by them retain the inherent simplicity of “vote for many as you can live with”. How to select a fixed-size set of winners to achieve PR can be done in several ways then. Conceptually the easiest:

  1. Whoever gets the most (weighted - see below) approvals is selected.
  2. If the required number have been selected, stop.
  3. Ballots are then re-weighted, so that the value of a ballot’s approval decreases by a function of how many of that ballot’s approvals have already been selected.
  4. Back to step 1.

“Factions” are detected by voting group behavior, not by pre-declaration. For example, if some strong faction only votes for Dutch people, they’ll get the first few winners, but the value of their remaining approvals keeps decreasing.

Jefferson and Webster favored different re-weighting schemes. Here’s good analysis of those (& other) schemes: “Multiwinner Approval Voting: An Apportionment Approach”,

Note: this all aims at “true” PR, not at forced PR - if, e.g., we insist that at least one director be from Belize, but nobody approves of any candidate from Belize, no arguably sane voting scheme will select a candidate from Belize.


I’ll take a brief, intuitive swipe at Single Transferable Vote (STV) schemes.

First, you have to agree that “first past the post” (vote for one, whoever gets the most votes wins) is a very bad scheme. If you don’t agree, go learn something and come back when you’re enlightened :wink:

Then the rest follows: if merely having the most number of 1st-place votes is a wretched criterion for picking the winner, then surely having the least number of 1st-place votes is an equally wretched criterion for throwing a candidate out of an election. Two sides of the same rusty coin.

That’s bad enough in single-winner “ranked choice” elections, but even worse when there are multiple winners: it could be that some candidate C is everyone’s 2nd-favorite choice, but STV throws C out in the first round because they got no 1st-place votes. In contrast, any known form of proportional Approval voting would pick C first, because they enjoyed unanimous approval.


I’m reading here a lot of good ideas that I think should be analyzed and implemented little by little, so I will just add the things that I didn’t read here.

  1. The User Experience to become a voting member is not that easy and intuitive even if you already are a basic member, I think this discourages new members to join and vote and it hits even harder to non English speakers.
  2. The current quantity of voting members in the different regions and who is not able to vote yet is something we really need to pay attention to, many of the community organizers and contributors I know doesn’t even know how the elections work and that they are able to become voting members.
    So what’s missing? I think that the PSF needs to diversificate the way they spread the news, diversificate the chanels and the way the information is expressed, this year I only noticed tweets on the PSF account (in English) or retweets from other accounts about the Elections, pointing to the page which explained the dates and steps also the deadlines on registering for voting.
    So if you are not following the PSF on twitter or don’t understand english very well or don’t have twitter the only way to notice the elections is to go directly to the elections page… (I’m making an emphasis in new members that might not have joined the SLACK, but maybe I’m missing another channel, it would be nice to know if there are other channels).

Not wanting to derail, but I think the underlying problem is that the PSF is not serving a well-defined community that would have its own regular communication means. It’s actually serving a bunch of independent communities that we entertain the fiction are all part of a larger “Python community”. It’s difficult to reach everyone when you don’t even know precisely what “everyone” means :wink:


That’s a very good point, it would be good to define that relation and the way that the psf communicates to those “sub-communities?”


It’s such a sad truth if that’s the case. It also sounds slightly off with the advertized mission of the PSF which talks about the Python programmer community, not the subscommunities that aggregate around Python as an ecosystem. In other words, I understood the PSF mission to talk to me as a Python programmer not to whatever subcommunity I could be part of. Said subcommunity doesn’t represent a force towards the PSF, but I do as a member, as per its mission is my understanding.