Differences between revisions 12 and 13
Revision 12 as of 2017-03-08 13:53:25
Size: 9111
Editor: ShaneCurcuru
Comment: Reorder, emphasize voting order
Revision 13 as of 2017-03-29 00:10:39
Size: 7703
Editor: ShaneCurcuru
Comment: Add shorter, more detailed vote explanation; remove unneeded strategic voting section
Deletions are marked like this. Additions are marked like this.
Line 15: Line 15:
The vote counting proceeds in a loop. Occasionally the loop spits out another board member, whenever a board member captures enough ballots to get elected. Ballots begin by being assigned to the #1 candidate indicated on that ballot. As the counting proceeds ballots are reallocated. Sometimes it becomes necessary to admit somebody is not going to get elected; at that point his ballots are reallocated. When a candidate is elected he takes with him only enough ballots to have gotten him elected; his other ballots are sent off the the lower ranked preferences shown on that ballot. The vote counting proceeds in a loop. Occasionally the loop spits out another board member, whenever a board member captures enough ballots to get elected. Ballots begin by being assigned to the #1 candidate indicated on that ballot. As the counting proceeds ballots are reallocated. Sometimes it becomes necessary to admit somebody is not going to get elected; at that point, his ballots are reallocated. When a candidate is elected he takes with him only enough ballots to have gotten him elected; his other ballots are sent off the lower ranked preferences shown on that ballot.
Line 17: Line 17:
This YouTube video provides a delightful introduction: [[https://www.youtube.com/watch?v=l8XOZJkozfI|Politics in the Animal Kingdom: Single Transferable Vote]]. This YouTube video provides a delightful introduction: [[https://www.youtube.com/watch?v=l8XOZJkozfI|Politics in the Animal Kingdom: Single Transferable Vote]] or a shorter description of [[https://youtu.be/Ac9070OIMUg|how second, third, etc. place votes are allocated]].
Line 27: Line 27:
 * Although there are 9 slots available, you can vote for as many people as you want - even votes after the 9th may end up being significant. Note that people you don't want elected should not appear on your list at all.  * Although there are 9 slots available, you can vote for as many people as you want - even votes after the 9th may end up being significant. Note that people you don't want to be elected should not appear on your list at all.
Line 35: Line 35:
'''UPDATE:''' Many members find the new web-based voting form to be convenient. Just follow the https://vote.a.o link you will receive in the email you get from the voting tool, where you will login with your browser and can cast your vote from a simple web form (which eliminates the need for any of the command line stuff below).

When time comes for a vote, emails are sent to each of the voters using your main email address as listed in members.txt. Actual votes are submitted from your apache.org account using a command line tool. That tool takes a token that was provided with the email. You may vote more than once with the same token, but only the last vote counts. Using a command line tools allows us to leverage ssh authentication. You must be able to check your email (the address in members.txt) and to ssh into people.apache.org sometime during the 42 hour meeting recess to be able to cast your votes (or, assign a proxy).

For details on how to automate your votes, please see MemberVoting, which suggests the command line to use. Note that new Member votes do '''not''' use STV; they work on majorities (you vote Yes/No/Abstain).
'''UPDATE:''' Many members find the new web-based voting form to be convenient. Just follow the https://vote.a.o link you will receive in the email you get from the voting tool, where you will login with your browser and can cast your vote from a simple web form. The 2017 version of Apache STeVe tool that we use for voting allows bulk voting for all Yes/No votes, as well as simple drag and drop voting for the STV board vote. Remember: the candidate at the **top** of the STV list is your first choice!
Line 44: Line 40:
The code used is now in it's own Apache project: Apache Steve [[http://svn.apache.org/viewvc/steve/trunk/]] The code used is now in its own Apache project: Apache Steve [[http://svn.apache.org/viewvc/steve/trunk/]]
Line 116: Line 112:
=== What is Strategic Voting? ===

Strategic voting is the name for votes that don't reveal your actual preference. You vote strategically in a clever attempt to get the maximum benefit out of your vote. For example say Mr. Wonderful, Mr. Ok, and Mr. Evil are running. Of course you prefer Mr. Wonderful, but polls show that Mr. Ok and Mr. Evil are running neck and neck. So, you cast a strategic vote for Mr. Ok. Tragically if all of Mr. Wonderful's fans are acting strategically he doesn't stand a chance.

Our STV Voter tool counting technique lets you safely reveal your actual preferences; the vote counting mechanism then acts strategically for you.

You vote in order of your preference. Mr. Wonderful and then Mr. Ok, and finally you might omit Mr. Evil entirely. The vote counting mechanism will elect Mr. Wonderful if it can, and if not it will reallocate your vote to Mr. Ok.
Line 125: Line 113:
Also see MemberVoting Also see MemberVoting (which uses Yes/No/Abstain methods)

This page is about how the ASF Membership elects new directors for the Board at the annual meeting. For a higher level perspective, see the Corporate Governance Overview.

IF YOU READ NOTHING ELSE, READ THIS: THE _ORDER_ OF YOUR VOTE FOR THE BOARD MATTERS - PEOPLE NEAR THE FRONT OF YOUR LIST ARE MORE LIKELY TO BE ELECTED THAN PEOPLE AT THE END, NO MATTER HOW SHORT YOUR LIST IS

The Members of the Apache Software Foundation (nominate and) elect 9 directors to the board for a year's tenure during our Annual Member's Meeting, which is typically held in the spring (northern hemisphere). For a description of how Member's meetings work, and in particular how to use the Voter tool to cast votes for either new members or directors, see MemberVoting.

STV is used for Board Elections

The ASF currently uses Single Transferable Vote (STV) voting when electing our 9 directors each year. STV is designed to help small coherent constituencies elect a director to the board. This vote counting design helps to enable voters to reveal their actual desires and avoid being too clever. Read on for a discussion of how we use STV, including details of how our volunteer vote monitors actually tally up the votes.

The most important thing to remember is: Vote the actual order of your preferences! Every effort is made to get your #1 preference onto the board; #1 votes are notably more important than the rest of your votes. If you vote in alphabetical order (as some seem to have done with past ballots) you're sending a strong signal that you'd prefer a board with names like Mr. Awful and Ms. Beastly - probably not what you intended. Our newer Voter tool randomizes the letters assigned to candidates.

How Are Votes Counted?

The vote counting proceeds in a loop. Occasionally the loop spits out another board member, whenever a board member captures enough ballots to get elected. Ballots begin by being assigned to the #1 candidate indicated on that ballot. As the counting proceeds ballots are reallocated. Sometimes it becomes necessary to admit somebody is not going to get elected; at that point, his ballots are reallocated. When a candidate is elected he takes with him only enough ballots to have gotten him elected; his other ballots are sent off the lower ranked preferences shown on that ballot.

This YouTube video provides a delightful introduction: Politics in the Animal Kingdom: Single Transferable Vote or a shorter description of how second, third, etc. place votes are allocated.

This Wikipedia entry explains the gory details: Single Transferable Vote.

This means that you can vote for Mr. Marginal and if he gets enough votes he's in; if not your #2, #3, preference will get used.

This means you can vote for Mr. Wonderful along with everybody else and after he's elected there is a reasonable chance your ballot will live on to help elect a candidate other than your first preference.

Hints on How To Decide Your Vote

  • If you really don't want somebody on the Board, then omit them entirely, rather than putting them at the end.
  • Although there are 9 slots available, you can vote for as many people as you want - even votes after the 9th may end up being significant. Note that people you don't want to be elected should not appear on your list at all.
  • By example, if 89 members vote in the election, a candidate can win one of the nine seats on the board with just 10 #1 votes. This helps to assure small constituencies can get a board seat.
  • AND RECALL: The ORDER of your votes is CRUCIAL !!

This voting architecture is excellent for helping to break up the tendency of elected bodies to settle into one or two power blocks; at it's also helpful for breaking up the power of incumbents to attract strategic voters. Its downside is that you can end up with a board with nine members all of whom were elected by very narrow constituencies to which they are extremely loyal - that can make it hard to reach any consensus.

How Do We Use the Apache Steve Voter Tool?

UPDATE: Many members find the new web-based voting form to be convenient. Just follow the https://vote.a.o link you will receive in the email you get from the voting tool, where you will login with your browser and can cast your vote from a simple web form. The 2017 version of Apache STeVe tool that we use for voting allows bulk voting for all Yes/No votes, as well as simple drag and drop voting for the STV board vote. Remember: the candidate at the **top** of the STV list is your first choice!

How Do We Tally Results?

Election results are calculated using Meek's Method for STV. The code used is now in its own Apache project: Apache Steve http://svn.apache.org/viewvc/steve/trunk/ so everyone can review and help improve the code both for the STV calculations as well as for the secure email and web balloting.

In any case, as mentioned above, the ASF uses Meek's method with the following parameters:

   Precision: 6
   Threshold:  Droop | Dynamic | Fractional

Under the voter/monitoring directory, there is a support script called nstv-rank.py which takes the Final Tally email, as sent by the voter tool, and outputs data in the format required by either VoteMain or OpenSTV. For OpenSTV, the script generates standard BLT format data, so any STV tool which implements Meek's and reads BLT could theoretically be used. The help output of the script is:

 nstv-rank.py:
   Usage: nstv-rank.py [-h] [-b] [-o filename] inputfile(s)
    -h: Usage info (help)
    -b: Generate BLT STV data format file
    -o <filename> : Output file (default stdout)

We also have a completely self-contained script that takes the raw ballots tally and returns the results for a 9 seat board:

 stv_tool.py -h
   Usage: stv_tool.py [-v] RAW_VOTES_FILE
    -v: verbose mode

In both cases, the scripts depend on a board_nominations.ini file located in the same directory as the input file to provide the mapping of labels and names. e.g.:

[nominees]
a: Spock
b: Kirk
c: Scott
d: McCoy

What Is A Sample Board Ballot?

The following is what is sent out to voters in the board ballot:

Board elections are performed via Single Transferable Vote (STV). Each voter lists all the people they want to see elected in order of preference. Excess votes for people who have already reached their quota (i.e., enough votes to ensure election) and also for the candidate with the least votes are redistributed to lower-numbered choices. This process is repeated until the required number are elected. Please see:

The key idea to keep in mind is that the ordering of your votes is crucial. Those who you *really* want to be elected should be at the beginning/start of the list. For example:

  • Aragorn, Frodo, Bilbo, Sam, Sauron, Gandalf, Treebeard, Gollum, Gimli

means that you really want Aragorn to be elected (he's your primary preferred person), followed by Frodo (you want Frodo on the board more than you want Bilbo, Sam and Sauron, but not as much as you want Aragorn), followed by Bilbo, etc...


Also see MemberVoting (which uses Yes/No/Abstain methods)

BoardVoting (last edited 2017-03-29 00:10:39 by ShaneCurcuru)