Apache Governance: Membership

This is the third in a series of essays describing Apache governance. The ASF is a non-profit, membership-based corporation; as such the Members of the ASF have a role similar to shareholders in a publicly traded corporation.

In this essay, the term “member” specifically means someone who is a Member of the Foundation itself, as elected per the corporate bylaws.

Organization

The ASF is a membership corporation, so Members serve a similar role as shareholders do in publicly traded corporations. Members may propose new candidate members, may cast one vote in new candidate elections, and may cast one vote in board elections.

Members are not empowered to speak officially on behalf of the ASF as a whole, nor do they have any special rights to influence technical direction of any Apache projects that they are not otherwise elected as a committer or PMC member on. While members often volunteer and serve in many capacities both at the Foundation level and within various Apache projects, their only specific organizational rights are to vote in board and member elections.

The Apache Incubator is special: any ASF member may request to be added to the Incubator PMC without a vote. Within the Incubator PMC, members may serve as official mentors or champions to incoming podlings, as well as voting on Incubator policy and releases of podlings undergoing incubation. In this way, members work to mentor podling communities and guide them to the Apache Way and eventual graduation as a top level Apache project.

Legal

Members act as shareholders of the corporation. As such, each member has a single vote on electing directors to the board; similarly members may vote on new nominees to membership. Members are eligible to nominate new candidate members and to nominate individuals to the board.

Organizationally, members do not have specific standing within any Apache projects or Incubator podlings. However most members are active as individuals within multiple Apache projects on their own technical or social merits, and once elected as a member often find more ways to get involved in more Apache projects.

While the board and relevant officers are directly responsible for providing oversight to the many Apache projects, members often work within many Apache projects to help ensure projects run smoothly and follow the Apache Way.

Communication

The central place for member-focused announcements and discussions is the privately archived members@ mailing list. This is used for a wide variety of purposes: both proposing and discussing new technical or policy ideas within the ASF, announcing marriages or births within member’s families or other major social events, and any formal announcements to the membership from the board or corporate officers.

By policy, members have the right to inspect and review the archives of all mailing lists at Apache. This policy is designed to ensure that every member can independently inspect all corporate operations, and the operations of all Apache projects. Thus members may review all private mailing lists (for example) about internal legal affairs, fundraising, security issues, as well as any private@ lists used by our Apache projects’ PMCs.

While members may send messages to any private lists, they do not automatically receive any special merit in terms of influencing the technical direction of Apache projects. Merit in Apache projects is gained within each individual project community, and membership does not convey any other special privileges.

Meetings

The board typically holds an Annual Members Meeting, where a new board of directors is elected, and new member candidates may be voted upon. Meetings are currently held on a private IRC channel, as an alternative to a traditional conference call, where any reports are read and members may ask questions. The meeting has a 48 hour recess for voting, and then reconvenes to announce results and complete the meeting: this allows members who may not be able to personally attend the first portion of the meeting to attend the second half, as well as to conduct voting over email using our own secure voter tool. Members who are unable to attend any of the 2 day meeting period may provide for another member to proxy their attendance and votes.

The board often holds interim Special Members Meetings in between Annual Meetings, primarily to give members a chance to nominate new candidate members and be voted in. Members also use Special and Annual meetings to raise additional questions or issues about Foundation operations – although members usually just raise questions to the board or to any ASF officer at any time over our usual mailing lists. Members and invited guests are welcome at all Members meetings.

Given the distributed and volunteer nature of the ASF, official in-person meetings of the Membership are no longer held. All Foundation or project business is conducted on normal mailing lists – although some of the lists are private. Members do often meet in small groups in person – although this is for social reasons, and often involves a meal or drinks. Many members and committers also traditionally attend the ASF’s annual ApacheCon conference.

Merit

All members have the ability to nominate new individuals as candidates for membership. The amount and types of merit that existing members look for in Apache committers varies, but always includes some significant technical or other contribution to one or more of our projects, as well as a clear interest and understanding of the Apache Way. In most cases, these contributions and traits are displayed over a significant period of time, usually over a year of engagement in one or more Apache projects.

Note that it is not required to be a committer before being considered for membershp, however as a practical matter, in the vast majority of cases any potentially worthy individual has already become a committer on some Apache project. At least two individuals have been elected as members without being committers first, in each case for non-coding contributions in mentoring on the Apache Way or other organizational work.

Many newly elected members are surprised (pleasantly!) to be told they’ve been elected. Typically, being nominated and elected as a new member is something that happens well after the nominee has a clear track record and a positive influence on Apache projects for some time; in hindsight, a frequent comment is “isn’t So-and-So a member already? They do such good work!”. Individuals asking to be made a member (or worse, insisting you should be elected!) is culturally frowned upon. In a perhaps counter-intuitive way, being considered for membership is something that requires real effort acting over a measureable time, but without making it obvious that you’re seeking recognition.

Candidate members are voted on as a simple majority vote (more yes’es than no’s) at Annual or Special member’s meetings. Voting is performed using custom written voting software with secret ballots.

Within the Membership, merit is equal; all members have an equal vote and ability to propose change within the ASF. Membership is a notably helpful factor in being considered for the board or in appointment to officer positions at the ASF, although the most important factor is demonstrated merit within the particular project or the ASF as a whole.

Community

The ability of members to influence the ASF is simultaneously major and immaterial. On one hand, members vote on new candidate members, and more importantly vote on the Board of Directors, which clearly affects strategic policies of the ASF. On the other hand, membership grants individuals no other special merit within any of our projects, and is not an official position within the legal corporation itself.

The perceived importance of membership is likewise a dichotomy. Many members are quite modest about their membership, and a frequently heard comment is that “oh, they really deserve to be recognized more than I did”. For many, being elected a member was not a goal or title that individuals were pursuing; rather, they were naturally doing their own work (at an Apache project), and were then recognized for it.. Many members list their affiliation on their resume (or LinkedIn, etc.); some do not.

Recognition of membership varies widely outside of the ASF: some software companies don’t seem to care what the ASF is or what membership means; a few software companies have strongly encouraged their employees to become committers or members, and gaining one of those roles is a notable prestige bonus within those companies. Likewise, a number members or officers of the ASF are frequently sought out as speakers at open source conferences.

Members share both the community of all other members, as well as often serving as bridges across the various Apache projects they are already involved in. Many members also volunteer extra time to serve as mentors, both within the ASF working with our projects and communities, and outside of it, mentoring others or speaking at conferences.

Technical

The membership as a whole and individually does not provide technical direction for any Aapche projects directly; every PMC is free to manage it’s technical direction independently. PMCs are the governing body for their project, and are expected to manage the project’s technology in the best interest of the whole project community, independent of outside commercial influence.

This is similar to how the board does not set technical direction for projects: this is a key reflection of how the ASF is intentionally structured to provide maximum freedom to it’s projects. The board and the ASF membership are happy to provide a home to any software project communities that are willing to follow the Apache Way. The mission of the ASF is to provide software for the common good: we are happy to help like-minded communities to provide that software; are confident that communities will form around software that is useful; and understand that there are many different ways to effectively and collaboratively build software.

In the case of members, nearly all members do participate in a number of Apache projects – as individuals based on their merit within the specific projects. Simply being elected a member does not confer any additional abilities in terms of other projects. Many members chose to serve as ambassadors of the Apache Way, and usually get involved in more projects as time goes on.

Resources

Apache Governance: Project Management Committees

This is the second in a series of essays describing Apache governance. Fundamentally, the most important organization at the ASF is a PMC, or Project Management Committee. These are the actual groups that decide what software our projects release, and as such do the bulk of the actual work of the ASF.

Organization

Apache projects are managed by Project Management Committees (PMCs), comprised of committers elected within a specific project community to provide oversight for the project for the ASF and to decide the release strategy for the project. PMC members are expected to act as individuals, making decisions for the best interest of the project when acting on PMC or development lists.

Each project’s PMC is independent. PMCs are free to set community and technical direction for their project, and are directly responsible for overseeing releases and the healthy development of their communities. PMCs are responsible for ensuring their project follows certain core requirements set by the board or other corporate officers of the ASF, like following Legal, Branding, and Infrastructure related requirements, along with ensuring their community operates within the basic outline of the Apache Way.

PMC members nominate new contributors to the project as committers, and PMC members cast votes on electing new committers to the project. PMC members also have binding votes on any project matters.

Legal

The board creates new PMCs to manage specific named projects by resolution at monthly meetings. New top level projects (TLPs) are created from podlings in the Apache Incubator after a successful graduation vote from Incubation. The board appoints a Vice President – an officer of the corporation – to serve as the chair of the PMC itself when creating the PMC.

PMC Chairs – who are VPs – serve as normal PMC members, with one vote on project matters just like other PMC members. The primary duty of a PMC chair is providing quarterly reports to the board about the health and status of their project. PMC chairs are expected to subscribe to the board@ mailing list, and be aware of any board concerns about the project, and are responsible for working with the PMC as a whole to address any board concerns.

When PMCs elect new potential PMC members or existing members resign, the chair of a project requests an “ACK” from the board. Once one director ACK’s email is sent recognizing the change in the PMC membership, and after a 72 hour wait, the PMC chair may update the official roster of the members of that PMC. The ACK process is designed to ensure that all PMC changes are explicitly acknowledged by the board, and the waiting period ensures that all directors have a chance to object or comment on any improper changes. Changes in PMC chairs are only made by board resolution at monthly meetings, since this involves appointment of an officer of the ASF.

As official committees of the ASF, PMCs provide the legal oversight of project operations and releases, ensuring that software releases are made on behalf of the ASF as an organization, and not as individuals. This helps to ensures that any legal liability for the products of Apache projects is born by the ASF and not by our committers individually. All PMC chairs provide quarterly reports to the board, which ensures that the board has oversight of all the projects of the Foundation.

Communication

PMC members should always be subscribed to their project’s private@ list, and certainly should be subscribed to at least the dev@ list to be aware of the operations of the project.

Virtually all PMC communication should happen on the dev@ list or any other appropriate public mailing list. The private@ list for each PMC should only be used for matters that require confidentiality, such as discussing personnel matters or voting in new committers or PMC members, or security-related issues that have not yet been publicly disclosed. Ensuring that PMC discussions about the future of the project are held on the public dev@ list ensures that all of the community – including non-committers – can follow the discussion and comment on issues. While only PMC members or committers have binding votes on project matters, healthy PMCs certainly work with the larger community of their project.

PMCs are free to use JIRA/Bugzilla, wikis, and other infrastructure-hosted tools that provide for public view and comment, along with the normal project mailing lists. PMCs should make specific requests to the Infrastructure team for services that the project desires.

Meetings

Some PMCs sponsor regular or occasional in person meetings, teleconferences, or IRC chats to brainstorm project ideas, but are expected to bring all information back to public lists for further discussion and to make final decisions. Many PMCs either directly organize, or have contributors or organizations in their technical space organize Meetups, BarCamps, or other in-person events focused on end user education and technical information sharing.

Given the distributed and volunteer nature of our projects, in-person meetings of PMCs are quite rare. All project business is conducted on normal public mailing lists.

Merit

PMCs are free to set the bar for merit within their projects, as long as decision making is done in a collaborative fashion as in the Apache Way. Healthy PMCs will regularly review contributions from non-committers – both specific code patches, bugs reported or commented on, or just helpful interaction on their project lists – to evaluate contributors as potential committers. Ensuring that PMC members are helping to mentor helpful new contributors to their projects helps to ensure a healthy and growing project community.

PMCs vary significantly in the level of commitment and work expected to be considered for a committership. Some PMCs vote in new PMC members typically from their existing committers (i.e. the progression is contributor -> vote -> committer -> vote -> PMC), while other PMCs always elect new committers into the PMC simultaneously (contributor -> vote -> committer & PMC member). PMCs are solely responsible for managing votes and granting commit privileges for new committers; however new PMC members elected must always be ACK’d by the board before they are officially added to the PMC.

Merit within one PMC is not transferable to other PMCs; each project’s committer list is independently managed by it’s own PMC. PMC members or committers with a long history on one project will often be known by their past activities by other project’s PMC members, but they are expected to build merit on each separate project they wish to become a committer on.

Community

While only PMC members have binding votes on project releases, in general PMC members participate equally with their project committers on the dev@ list. PMC members can help to ensure a healthy and diverse project community by ensuring the project’s mailing lists are welcoming to newcomers and that community standards are promoted on it’s mailing lists.

While there are many projects with overlapping communities – and therefore some shared personal or technical relationships – fundamentally each project is it’s own community in terms of the bulk of project work. While all projects are part of the overall ASF, and as such share certain basic requirements and bits of the Apache Way, all technical direction and most of the community focus is within each project individually.

PMCs are expected to report on the health and diversity of their project’s community to the board. While there are no strict requirements on the makeup of PMC members (in terms of employment or affiliation of the individuals on the PMC), the board does expect PMCs to operate independently of outside commercial influence. PMCs that are unable or unwilling to ensure their actions are on behalf of the whole community – or act in ways targeted to specific commercial interests – will be contacted by the board and required to make corrections.

Technical

The board does not provide technical direction for any of it’s projects or activities; every PMC is free to manage it’s technical direction independently. PMCs are the governing body for their project, and are expected to manage the project’s technology in the best interest of the whole project community, independent of outside commercial influence.

While this may be a surprise to some, it is a key reflection of how the ASF is intentionally structured to provide maximum freedom to it’s projects. The board and the ASF are happy to provide a home to any software project communities that are willing to follow the Apache Way. The mission of the ASF is to provide software for the common good: we are happy to help like-minded communities to provide that software; are confident that communities will form around software that is useful; and understand that there are many different ways to effectively and collaboratively build software.

Advice

One of the most important pieces of advice I’d personally give to PMC members is to feel a sense of leadership and responsibility for their projects as independent projects. Apache relies on it’s PMC members to ensure that their projects are managed in an open and fair manner, and that their projects act to serve the public interest by providing free software under the Apache License. In many ways, PMC membership is a duty to the project as a whole, and a call to set aside outside influence to act for the best interests of the project’s active community itself.

Resources

Apache Governance: Board of Directors

This is the first in a series of essays describing Apache governance. While there are a number of existing documents that explain some of the “hows”, I’m hoping to fill in some of the key information about the “whys” of how the Apache Software Foundation (ASF) actually works day-to-day. Look for more articles on things like the Membership, PMCs, projects, and more coming up!

Organization

The board consists of 9 directors, each serving as an individual. After each annual board election, the board chooses a Chairman from it’s ranks. This is currently done a couple of months after the board election, to give the new board a chance to get to know one another. The board also appoints executive officers for the corporation at that time.

The board meets by conference call and IRC chat monthly. The agenda is published privately to the Membership. All corporate officers make a monthly written report to the board, and every Project Management Committee (PMC) makes a quarterly written report to the board. In this way, the PMCs report directly to the board, not to the President or other corporate officers. All ASF Members and invited guests are welcome at board meetings, except during very rare executive sessions of the board.

Currently, the average monthly agenda includes 10 corporate officer reports, 40 PMC reports, and often a handful of official resolutions. To ease the review process for reports, reports are due well before the meeting begins, and many directors “preapprove” reports by initialing them in the agenda file before the meeting. Each PMC report is assigned a director to serve as “shepherd” for the month; any questions raised before or during the meeting are taken by the shepherd back to the relevant officer or PMC for an answer or resolution. PMCs that report late or where serious questions are raised during the meeting may be asked to provide an additional report at the next monthly meeting.

The President is responsible for managing the day-to-day operations, and helps to coordinate the work of the VP, Infrastructure and the sysadmin team; however VP, Infrastructure also makes a monthly report directly to the board. In this way, the board exercises oversight over all official Foundation activities.

Legal

Article V. of the ASF bylaws specifies a Board comprised of 9 Directors, elected annually by the ASF Membership. The Apache Board is much like the board of directors of any other corporation, responsible for “…management of the corporate assets (funds, intellectual property, trademarks, and support equipment) and allocation of corporate resources to projects.”

The board is responsible for appointing any officers of the ASF, including executive officers – President, Secretary, Treasurer – and other officers, both those with corporate functions (Legal, Publicity), and Vice Presidents of individual Apache projects. The board also sets overall policy for Apache projects, or in many cases, delegates the details of policy setting and implementation to specific corporate officers. Official resolutions are used to appoint or change officer positions, create new Top Level Projects (TLPs) or retire unused projects, and in certain cases to make fundamental policy decisions. Most policy is simply agreed upon by the board and any relevant officer(s), and published on our website.

Communication

With the exception of monthly conference calls, board communication is done over private mailing lists. The board@apache.org mailing list is the primary place where official business is done. All directors, corporate officers and PMC chairs are expected to subscribe to this mailing list and track issues relevant to their areas of responsibility. Many ASF Members also participate, comment, and help resolve issues where appropriate.

Directors will regularly read and participate on various project mailing lists when a board-level issue or question has been raised. This participation is done wearing their board hat: i.e. as a strategic voice, addressing broad ASF policies or important community health issues. Directors participate technically in Apache projects as individuals: directors are not automatically granted committerships, PMC memberships, or even binding votes on any project matters. Directors wishing to influence the technical work of a project must gain merit and be voted in as a committer to that specific project like any other contributor.

Meetings

The board exercises oversight of Apache Projects by reviewing project reports at the monthly board meeting, and by explicitly approving all changes to PMC membership. When PMCs have voted in and nominated a new committer to serve on the PMC, they ask the board for an ACK, or acknowledgment, of the addition. Once any one director sends an ACK email, the official PMC membership roster is updated after a 72 hour wait, designed to give other directors a chance to comment or question the appointment before it is officially recorded.

PMCs are expected to provide accurate and thorough reports to the board of their community health and technical and software release activities. Projects that do not report or have serious issues in their report will be contacted by that month’s shepherd or another director to find a resolution. In extreme cases, where a PMC is dysfunctional or is not following required Apache policies, the board may unilaterally make changes to the PMC or may dissolve a project to correct the issue.

Merit

Board elections are held annually; currently, each board seat is for one year, so all 9 directorships are voted on annually. ASF Members are eligible to nominate people for board seats as well as to vote in the board election. Director candidates run individually, and Member votes are currently cast by Single Transferable Vote (STV). All nominations, position statements, and voting are conducted electronically either over private mailing lists or using our own software for casting votes. Individual votes are kept anonymous, although the full STV calculations are published privately amongst the Membership.

In the past, only existing Members with some history within the ASF have been nominated. While the bylaws allow for any person to be nominated for the board, the amount of trust and expected experience with the Apache Way for directors is such that nominees outside of the existing Membership are unlikely for the time being.

For the first several years after incorporation the board was quite stable, with a majority continuing to serve repeatedly. As the ASF grew in membership around 2004, the board began to change somewhat, with a few new faces appearing each year. Jim Jagielski, one of the founders of the ASF, has remained on the board since it’s beginning.

Directors are expected to serve as individuals on the board, representing the Membership and acting in the best interests of the ASF as a whole. Directors are expected to disclose any conflicts of interest they may have due to their current employment, and recuse themselves when necessary from votes or potentially discussions on subjects they have a conflict with.

Community

While Directors participate in a variety of communities both within and outside of the ASF, the primary community home for directors is the Membership. Most directors follow the main private Members mailing list, where any ASF Member start discussions about a wide variety of topics, spanning from new technologies, policy ideas, questions about project communities, or even personal announcements of weddings and births.

From time to time Directors participate in the communities of various Apache projects when a board-level issue or question is raised; however they do so wearing their individual Director hat. Many Directors are separately committers or PMC members on a variety of Apache projects, where they do technical and community work just like any other committer, wearing a committer hat.

Many Directors also serve in the public community; serving as spokespeople for the Apache Way or granting interviews about the ASF or our projects, or reviewing other open source or charitable foundation works.

Technical

The board does not provide technical direction for any of it’s projects or activities. The board does set broad policies – for example, requiring that all source control systems are run on ASF hardware, and controlled by ASF Infrastructure. Technical direction – either in terms of how to implement infrastructure or what code projects should work on is all delegated to the PMCs or relevant officers.

While this may be a surprise to some, it is a key reflection of how the ASF is intentionally structured to provide maximum freedom to it’s projects. The board and the ASF are happy to provide a home to any software project communities that are willing to follow the Apache Way. The mission of the ASF is to provide software for the common good: we are happy to help like-minded communities to provide that software; are confident that communities will form around software that is useful; and understand that there are many different ways to effectively and collaboratively build software.

Resources

Apache projects are independent and non-commercial

While not all aspects of the Apache Way are practiced the same way by all projects at the ASF, there are a number of rules that Apache projects are required to follow – things like complying with PMC release voting, legal policy, brand policy, using mailing lists, etc., which are documented in various places. There are a few rules that I think may not be documented as succinctly as they should be.

A primary purpose of the basic requirements the ASF places on it’s projects are to help ensure long-lived and stable projects by having a broad enough community to maintain the project even in the potential absence of any individual volunteer or any sea change at a major vendor in that area. The Apache project governance model is explicitly based on a diverse community. This is different from other governance models, like the “benevolent dictator” idea or the often corporate-backed model that Eclipse uses.

Apache projects are independent

This is implicit in the fact that the Project Management Committee (PMC) runs the project, and the fact that PMC members are expected to contribute to the project as individuals, wearing their “PMC hat”. The concept of hats means that when a PMC member votes on project matters, they are casting their vote as an individual acting in the best interests of that PMC, and not as an employee or representative of some third party. There are also certain expectations of diversity within a PMC; the board may apply extra scrutiny to PMCs with low diversity (i.e. PMCs that are dominated by people with a common employer). Similarly, the ASF does not allow corporations to participate directly in project management, only individuals.

There are two important aspects to this independence: project management, and project use by end users.

Apache projects are managed independently

Apache projects should be managed independently, and PMCs must ensure that they are acting in the best interests of the project as a whole. Note that it is similarly important that the PMC clearly show this independence within their project community. The perception of existing and new participants within the community that the PMC is run independently and without favoring any specific third parties over others is important, to allow new contributors to feel comfortable both joining the community and contributing their work. A community that obviously favors one specific vendor in some exclusive way will often discourage new contributors from competing vendors, which is an issue for the long term health of the project.

Apache products may be used independently

All Apache projects must release their code under the Apache License, which clearly specifies the minimum restrictions that users of Apache software must agree to. Apache software is all about being able to use it for virtually whatever our users want: open source, proprietary, secret: we’re happy to have users take our software (although not our name) for virtually any purpose. While our legal guidelines allow certain other software licenses to be used for specific dependencies, the software we release always uses our license.

Extending this idea, users of Apache software should be able to find our software, learn how to use it, and actually apply it to all its common use cases solely by going to the Apache project’s own website. Apache projects should provide sufficient documentation, install features, basic user help (through mailing lists) and services for the common use cases to the user, without them having to rely on third parties. It is important that our users can both make use of our software freely – both in terms of not having to pay for the software, as well as not having to worry about IP claims or other more restrictive licenses on either the software or the configurations or other common materials required to actually use the software.

Apache projects are non-commercial

The ASF’s mission is to produce software for the public good. All Apache software is always available for free, and solely under the Apache License. While our projects manage the technical implementation of their individual software products independently, Apache software is released from the ASF, and is always meant to serve the public good.

We’re happy to have third parties, including for-profit corporations, take our software and use it for their own purposes – even when in some cases it may technically compete with Apache software. However it is important in these cases to ensure that the brand and reputation of the Apache project is not misused by third parties for their own purposes. It is important for the longevity and community health of our projects that they get the appropriate credit for producing our freely available software.

 


 

Reminder: “The postings on this site are my own and don’t necessarily represent positions, strategies or opinions of either my employer nor the ASF.”

Apache new(s): officers, projects, commits

A brief roundup of recent Apache news:

Please welcome a number of new top level projects that have recently been created:

  • Please welcome the Apache jUDDI project, a Java implementation of the UDDI v3 specification, which graduated in August from the Web Services project to be come a top level project.
  • Welcome also the Apache Pig project, a platform for analyzing large data sets often used with Apache Hadoop – where it recently decided to move from being a subproject to a TLP in it’s own right.
  • Likewise, the Apache Hive project has also split off from Apache Hadoop as well, providing a data warehouse providing a simple query language called Hive QL.
  • The Apache Shiro project recently graduated from incubation to become a TLP, and provides a security framework for authentication, authorization, cryptography, and session management.

Finally, I’d like to extend the appropriate thanks and appreciation (which are very large!) to our recently outgoing executive officers:

  • Justin Erenkrantz, our outgoing President, who’s literally traveled the world speaking at events and companies on the ASF’s behalf.
  • Sander Striker, our outgoing Executive Vice President, who’s also been a help in outreach and our infrastructure in many areas.