Ever thought about getting involved in an open source community? The Apache Software Foundation (ASF) is one of the places to do so. But what’s in for you? We talked to someone who should know: Benedikt Ritter is involved in the ASF and answered our questions in the following interview.
The following interview was originally published in the corporate magazin Softwerker vol. 01/15.
From your point of view, what is the Apache Software Foundation all about?
Well, there are a number of principles which are important at the ASF. One of them is “Community over Code”. It means that a vivid, friendly community is more important than the code itself. The rationale behind this is that a good community can continuously improve bad code. But without a community even the best code will not evolve.
Furthermore the ASF is a meritocracy. This implies that anybody has to prove his abilities before he gets a say in the development. Once this proof has been provided, there is no way to evade say. The term “do-ocracy” it tightly coupled to this principle, meaning that those who do something are to decide. So it’s better to introduce a change that works for 90% of the use cases already than not to do it.
Personally I like that the ASF is not driven by politics. There are no big players who pursue their own agenda.
How did you find the ASF?
Anybody working in IT will sooner or later have to deal with the Apache http webserver. Apache httpd is probably the most common product of the ASF. When I worked with a LAMP stack for the first time during my time at university I didn’t know what that was all about…
Apropos httpd – this is not only the most common product, but it is the the first project from which the ASF emerged, isn’t it?
That’s right. The ASF was founded by a group of developers in the mid-nineties. They came together to write patches for the NSCA public domain HTTP daemon. In April 1995 this group released version 0.6.2 of Apache httpd. In 1999 the members of this so-called Apache Group founded the Apache Software Foundation. The myth that they chose the name “Apache” to describe the poor quality of Apache httpd (“a patchy webserver”) dates back to that time. The truth is that the name was chosen to honor the native tribes of America.
Let’s get back to how you got involved in the ASF…
Later during my studies, I worked as a student assistant in a small software company. Coming right from university, I had the urge to always reinvent the wheel. But my team leader told me: “Before you start implementing things yourself, check if somebody has already implemented it for you.” He showed me Apache Commons and I was amazed by the software components that were available there.
Sometime later I subscribed to the Apache Commons mailing list, because I wanted to know how it all worked. I started discussing and I wrote some patches. On a Saturday morning I got an e-mail by the Apache Commons PMC (Project Management Committee) inviting me to become a committer. That was a great moment for me because I convinced others of my abilities by doing good work. In the meantime I’ve become a member of the PMC myself and I send invitation e-mails to others who have convinced me of their abilities.
What is a Project Management Committee?
Every project at the ASF has a Project Management Committee. The PMC is responsible for advancing the project. Members of the PMC may propose new committers. Decisions concerning new committers are made through secret ballot. In general, votes raised by members of the PMC are binding when a vote is held. For example, when a new release is about to be made, the release manager prepares a release candidate (RC) for review. Anybody is invited to review the RC and raise any concerns he or she has or problems he or she discovers. But in order to release a RC the release manager needs three positives votes by members of the PMC. All other votes cannot prevent or accelerate the release. Of course it is pretty unlikely that the release manager decides to release something if there are only three positives votes by PMC members but ten negative votes by other community members. But formally this vote would pass by the rules of the ASF.
Another responsibility of the PMC is to prepare a quarterly report for the Board of Directors, informing the board about the state of the project. Such a report contains information about new committers and PMC members, successful releases, and anything else which may be of interest to the board. The quarterly report provides an opportunity to ask the board of directors for help if a project has problems it cannot deal with on its own. This can be, for example, incapacity due to a lack of active community members or internal conflicts among project members which cannot be resolved. I’ve to admit that I haven’t experienced such a situation until now.
You just introduced a whole lot of new terms: committer, release manager, release candidate, Board of Directors. Can you please elaborate on these?
Sure! Generally there is a difference between contributors and committers. Becoming a contributor is fairly easy: You just contribute something to a project. For example, creating a bug ticket is already a contribution. Other examples include contributions to discussions on one of the mailing lists, improvements of the documentation and providing patches for issues in the bug tracker. Patches can be provided in form of SVN/git diffs or for some time now as pull request against one of the GitHub mirrors of the ASF. Patches will then be reviewed by one of the committers regarding relevance, quality and code style. Often this leads to a discussion about what has to be improved for the patch to be accepted. When the patch has reached the desired quality, it is applied by one of the committers. The diff of each commit is sent to a separate mailing list so that other project members (committers as well as contributors) can review it. If somebody has concerns about a change, he or she can raise them on the mailing list, giving the author of the change the opportunity explain the change. This is a means to keep the quality high.
The release manager does his or her job later in the development process. At some point in time a committer can volunteer to create a new release of a project. Usually he or she will write a short notice to the mailing list like “It has been some time since we released foo 1.1, so I’d like to release foo 1.2 soon. If you’re planning to fix something that should be included, please do it now”. To start the release process, the release manager prepares a release candidate and sends another notice to the mailing list. A release candidate is made up of several parts: An SVN/git tag of the source code, which should be released, binary and source archives, artifacts that will be published to Maven Central, release notes, the project website as well as some code quality reports. The release candidate represents something like “if we decide to release foo 1.2, it will look like this”. If the vote about the release candidate is successful, it will be published. If not, the code has to be improved and the release manager prepares another release candidate.
To explaining the role of the Board of Directors I have to go back a little and talk about the organizational structure of the ASF (editor’s note: the following part is to describe the term “foundation” to German readers). The English term “foundation” can be translated to “Stiftung” in German. Nevertheless under German law the Apache Software Foundation corresponds more to a registered society. There are members in this society. You become members – following the principle of meritocracy – by proving your abilities to the other members through good work and by showing that you care about the ASF as a whole. The members annually elect the Board of Directors, which governs the ASF’s activities in all areas. The board is made up of officers for the various areas, such as fundraising, marketing, trademarks, infrastructure, etc. This is the organizational view of the ASF (see fig. 1). The PMCs take care of the technical matters and report to the Board of Directors. Furthermore new projects are initiated by the Board of Directors.