I’ve been using Apache software in one form or another for about 15 years. But it’s only recently, with the advent of Apache Flex that I’ve started to actually understand what Apache is all about. I’m not referring to the Apache web server here, which in some circles is synonymous with ‘Apache’. I’m talking about the Apache Software Foundation (ASF), its history and how it works, as well as the Apache-specific projects, and how those projects are developed and maintained.
If you’re completely new to Apache software and are wondering about the commercial viability of Apache software, take a deep breath and digest this fact. As of March 2012, approximately 420 million websites use the Apache web server. That’s approximately 65% of all websites. For such ubiquitous software, you’d think there must have been a massive team of developers hard at work, writing specifications, developing the software, testing and supporting it. Yet, truth be told, on average there were no more than 15 developers from different organizations collaborating on the Apache web server at any given time.
When I say they were collaborating on the software, that gets to the root mission of the ASF. The ASF provides the legal, financial and organizational support for a broad range of open source, or rather, open development projects. The ASF only supports collaborative projects that need an infrastructure for a community of developers. This is not a repository of one person code dumps, or master’s thesis experiments. These are long-lived projects supported by a community of developers.
Apache projects work because it’s all about the community. The actual code is important, but only because it brings the community together. Even the best software, without a supportive community, will actually be shunned by the ASF. If enough people care about that software and want to keep a community thriving, well that’s a different story.
Joining that community is simple enough. All you have to do is subscribe and participate. Pick a project you’re interested in, subscribe to the appropriate mailing lists to stay informed, and start participating in whatever way you can, whenever you can. To get started, some people take a look at the issues list, find a simple bug they can fix and provide a patch to the community. Simple enough. The more you get involved, the more exposure and respect you’ll get in the community and more you’ll be able to influence that community.
And that gets to one of the prevalent tenets of the ASF, the notion of the meritocracy. This applies to Apache projects and the people working on those projects (the community). You might start out as a user who simply uses some piece of Apache software. The success of that project, for whatever reason, may motivate you or your employer enough that you graduate to becoming a developer or contributor on that project. You might fix bugs or write new features. It doesn’t matter as long as you are part of the community. If you get involved enough and show your commitment to the project, the project’s management committee (PMC) can decide to promote you to committer so you can have write access to the source control system to make direct changes to the code.
Projects are also promoted through a meritocracy. When projects are first proposed to and accepted by the ASF, they are put in the incubation stage and are referred to as podlings. Each podling, with the help and guidance of ASF mentors, needs to prove that they are and will be a successful meritocratic community before the ASF promotes them to becoming a top level project, or TLP.
I recently read one of the status reports for the Apache Flex podling, where it listed the top four items to resolve before graduation to TLP:
The first two are logistical matters I can understand. And of course the project needs to show they can make a release. If they can’t do that, what’s the point? But it’s actually subtler than that. The Apache Flex community needs to show that they can all come together and agree on a release. That’s a big step as a community.
As for new committers, my first reaction was truly confusion. That should be very easy I thought. I’m sure we can get a bunch of people from Adobe to sign up as committers to make this a success. But then I realized that we’re talking new committers, not just new contributors. The Apache Flex community needs to prove that they have new people coming in who are contributing enough to the community that they should be promoted to committer, and that the Apache Flex PMC is organized enough to vote them in as committers. The Apache Flex community has to show that they are and will be a successful meritocratic community.
Given that there have been over 2000 messages on the Apache Flex mailing list in the past month alone; I think we’re off to a very successful start.