How Apache Runs Annual Member Meetings

As a Delaware non-stock membership corporation, the ASF’s bylaws specify that we hold an annual meeting of the membership. Since the ASF is also a distributed organization of volunteers, we hold our meetings a little differently than most companies – meeting on IRC over three days, and voting securely online.

Since we’re in the middle of our meeting this week, here are some answers to common questions. If these are valuable, we can add them to the ASF’s official member’s meeting process. I’ve also written a timeline of pre-meeting setup, as well as about the work after the meeting.

How do you run a meeting with participants in every timezone?

We use IRC (not voice calls), we have proxies for attendance, and we make all the important decisions asynchronously. The meeting on IRC is held in two parts, with a 40+ hour recess in the middle, allowing part of the meeting to be realtime, and part handled over email.

What’s the agenda? What actually happens at the member meeting?

It’s probably a lot more boring than you imagine. Since we recess from the meeting to run balloting via email, the interactive IRC portions of the meeting are actually quite dry. Since most of our discussions happen asynchronously over mailing lists anyway, the interactive time is usually pretty limited. Typically the few questions we get serve mostly as prompts for the right people to have a longer discussion over email later.
More specifically: the Member Meeting happens in two parts on IRC: Tuesday we review the first half of the agenda and announce the special orders for a vote. We then recess the meeting and handle voting via email over the next 40+ hours. We reconvene on Thursday for the second half to hear the results of the vote… and that’s it!

How does the first half of the IRC meeting work?

The Chairman formally opens the meeting, and then essentially runs through the agenda interactively on IRC.
After a Call To Order, we hold a Roll Call, where members mark attendance at the meeting. This is important to comply with Delaware corporate law: we need to show that a quorum of members are ‘present’ at the meeting to know that we can conduct official business.
Our ASFBot code logs the IRC channel, and scans for everyone’s reply to the Roll Call. We have custom code that cross-checks the IRC lines with our membership roll. It also can cross-check both people who attend live, as well as people who are proxying attendance for another member.
Once we count that we’ve reached quorum, the meeting continues. The executive officers each provide a very brief State of the Foundation from their areas – a high-level note of major accomplishments in the past year. We post much more detailed Foundation overview reports separately.
The member’s meeting does offer a brief Q&A period, although since most conversations happen on our mailing lists, there are rarely questions. Most questions here get a simple answer, which is partly a prompt for a deeper discussion amongst the members later on our lists.
Then we announce the Special Orders, which are the three sets of ballots that Members will be asked to vote on during the recess. They include an “Omnibus resolution” about basic corporate affairs, and then two elections: one for the board, and one for new members. All data for the elections was available to the members ahead of time, so this is merely a formal announcement during the meeting.
Then… we take a recess!

What happens during the member meeting recess?

Once the Chairman formally calls the IRC meeting to a recess, our vote counting volunteers fire up the Apache STeVe code! STeVe is a complete election running system that sends an email to each member with a secure voting link. That way, members who can’t attend interactively on IRC (or, who live someplace where the meeting is in the middle of the night!) can simply read their email the next day to get their ballot. Members have about 40 hours to cast ballots during the recess.
All voting happens on the STeVe website with a simple UI, and the STeVe system also validates all ballots privately, with a small team of volunteer vote monitors.

So… there’s a second half of the meeting?

Yes – on Thursday, after the 40+hour recess, the IRC meeting is formally reconvened. At the end of the recess our vote monitors have tallied the ballots and present them to the Chairman to announce during the meeting.
Important: at this point, we can announce the new board: as soon as they’re elected, they become the new directors of the ASF. However, newly elected members are not announced, because they haven’t been told yet.
Member candidates are not told ahead of time, in case the vote doesn’t elect them in. Once they have been formally elected, the member who nominated them reaches out to welcome them and send them the membership application. Newly elected members have 30 days to sign and return the application, at which point they become voting members of the ASF.

How do you keep corporate records of your meetings?

As our official corporate meetings, we need to keep records to ensure we’re fully compliant with Delaware law. Since we’re also software people, we store all our records in a private Apache Subversion repository. This allows for strong access control and tracking of all changes to our records as well.
Foundation Members all have access to our /foundation repository, where the Meetings directory holds the agenda, README.txt, board and member ballots, a full raw IRC log, and more data about attendance and proxies. We save all data about membership meetings perpetually. Members can see the agenda and information about the March 2000 member’s meeting held at ApacheCon in Orlando!

Are membership meetings public?

No. While we publicly announce the newly elected board, and the list of any members who have been elected (and who accept the honor in the next weeks), the details of Member meetings are not public. Those interested in understanding ASF governance should instead see our published board meeting minutes, which is where the action is anyway.

How is attendance tracked?

Both to show compliance with corporate law, and for our internal records, we track attendance in a couple of ways.
During the first half of the IRC meeting, we take Roll Call. This lasts as long as it takes to show that we have a quorum (1/3) of members in the meeting – either who respond directly, or who have a proxy respond on their behalf. Note that members can announce their attendance at either half of the meeting (Tuesday or Thursday) to be ‘present’ during the meeting.
Separately, every member gets a ballot to vote in special orders, even if they don’t attend the meeting. Any member who actually submits their vote(s) is marked as voting at the meeting. Either attending, sending a proxy, or voting counts as participating in the meeting, which is what’s important for us internally.
Note that Emeritus members do not have a vote in our meetings, and don’t count for quorum. Some members – after realizing they haven’t participated in a meeting for years – will voluntarily choose to go Emeritus, and will send in the form to our corporate Secretary.

Published by


Briefly, Shane is: a father and husband, a friend, a geek, a Member and director of the ASF, a baker, an ex-Loti, a BMW driver, a punny guy, a gamer, and lifelong resident within the 495 belt. Oh, and we have cats.

One thought on “How Apache Runs Annual Member Meetings”

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.