How do I measure developer growth on a regular basis?

Federlesen # 6: Dealing with innovations and growth

The new edition of the Federlesen column is about the Apache incubator initiated in 2002. It is a yardstick for upcoming Apache projects, and the topics dealt with there are an expression of contemporary developments.

The incubator process is clearly regulated with roles and levels. In order to become an Apache project, a project proposal must first be submitted to the Incubator and a so-called champion from an existing similar Apache project must be sought to serve as a project sponsor. After the proposal through the sponsor or the general mailing list [email protected] has been accepted, the project receives a mentor who automatically becomes a member of the overarching Incubator Project Management Committee (IPMC).

An incubator project is initially in the "Podling" status for an unlimited period of time, where certain guidelines and rules apply. The most important goals of podling are to clarify all legal questions in advance, to build a stable community, to then set up the "Apache-compliant" project and to create at least one incubator release. The ideas here on how to build a successful community and what is the prerequisite for a successful open source project are therefore intended more than advice.

So far 74 projects have successfully left the incubator, three have been set to "dormant" and 19 have been withdrawn. The current and former incubator projects with the mentors assigned to them can be found here, the proposals submitted with the reporting dates can be found there. The average duration in the incubator per project was previously 605 days. Tapestry left it the fastest with 58 days and the withdrawn WSRP4J the slowest with 2419 days. Good things take time.

For the first three months, the Incubator project reports to the IPMC on a monthly basis. The report is then made quarterly, similar to an official top-level project. The IPMC in turn reports to the ARSP board of directors. For measuring project development and its growth, regular releases are important for greater dissemination. The health status of an incubator project is automatically measured and displayed according to 20 categories with four colors (red, orange, green, yellow). An important indicator of the liveliness of a project is the availability of releases on the project page, which ideally appear regularly and are supported by a growing community.

In addition to the general Incubator mailing lists [email protected],[email protected], [email protected], [email protected] and [email protected] there are still the project-specific ones $ {podling} [email protected], $ {podling} [email protected] and $ {podling} [email protected]. Taken together, there are 147 IPMC and 813 Incubator Committer Subversion accounts, which means an average of 14 committers per Incubator project. This means that 30 percent of all committers deal with the cultivation of projects in the incubator.

The most spectacular and largest incubator project with 72 committers, 38 PMC members and eight mentors is OpenOffice. From their proposal and development, you can clearly see how an incubator project is currently developing. There is a mailing list, a community wiki, a developer wiki, a blog, a website and the first podling release was generated from the source code stored in the Subversion repository. The first license check and inspection of the licenses used has been carried out. Some source codes have to be replaced for licensing reasons or require additional Software Grant Agreements (SGA) from Oracle.

Licensing (or licensing customer)

First, the Incubator project is checked for the licenses, trademarks, logos and copyrights used before it can be placed under the Apache license. Clarifying the rights and licenses that have been used so far plays a major role, especially at the beginning of a project. The ASF has its own formal process for clarifying intellectual property. When dealing with different types of licenses, the Apache legal department and the division of the licenses into upper and sub-categories can help.

Each Apache source file must have a license header in the header. In addition, the Apache license in version 2.0 must be in the file LICENSE stored in the top directory of each distribution. In addition, there is one on the same level NOTICE- File that contains the version status, the history of the product and any other non-Apache products that are used with their licenses. Since November 1, 2006, these elements have made up the package insert of every Apache product, be it source code or be it binary file. It is important that an Apache release is primarily a source release and that precompiled binaries are important for distribution, but are viewed as optional.

Ready-made scripts can be used to update or send all source code files with this header. There are special regulations for the use of cryptography algorithms due to national export regulations. It is welcomed if individuals or companies who contribute code, documentation or ideas sign an individual Contributor License Agreement (CLA) or Corporate CLA (CCLA) to prevent later disputes. A personally signed CLS is required to receive commit rights, even if the company has signed a CCLA. If complete software or a document is handed over, the Software Grant Agreement (SGA) must be signed.

The open source organization has access to the associated Java Technology Compatibility Kits (TCK) for some JSRs. A Non-Disclosure Agreement (NDA) has to be signed with the ASF for this. More information and all projects (Geronimo, MyFaces, CXF) that officially passed the test can be found at apache.org/jcp. Geronimo 3.0 has just passed the compatibility test for Java EE 6 profiles.

From the incubator to the market

In addition to the incubator, new Apache projects can also be created as offshoots of existing projects. These include ActiveMQ, Felix, Derby, Directory, Subversion, PDFBox, CXF, CouchDB, MyFaces, Roller and Geronimo. Recently, a noticeable number of BigData projects such as Cassandra or cloud projects such as Deltacloud, Whirr and Libcloud have escaped the incubator. The implementation of the CMIS standard (Content Management Interoperability Services) by Chemistry, the implementation of the UIMA specification by Apache UIMA or Apache ManifoldCF with connectors for various content sources that have their first releases outside or inside are interesting for content integration of the incubator.

This is already being discussed at the Indian campfires, but many of the projects in the incubator are not yet known to most of them. At this point, we only took a look at the incubator and its conditions for the rearing of successful junior projects. In the past, this has ensured a sufficient supply of innovative projects and will continue to do so in the future. (ane)

Frank Pientka
is Senior Software Architect at Materna GmbH in Dortmund and author of the Geronimo book at dpunkt Verlag.