On the surface, there are essentially two paths open source projects navigate. One path people will recognize and immediately assimilate with flagship projects under the Apache Software Foundation brand – such as Apache HTTPD Server, Apache Lucene, and Apache Hadoop, amongst others – where codebases hit the open source arena and seem to attract extremely active and unbelievably diverse community bases. Essentially such projects, and more importantly the communities they generate, harness, and retain, can be considered as undoubted ground breakers in their own right.
The other path, encounters the footsteps of projects which seem to carry less of an immediate appeal to developers and users alike. Such projects just don’t seem to posses that intimate and irresistible attraction that the aforementioned projects do. Whether it be some killer feature, performance gain, paradigm shifting appeal… or maybe just the fact that it came along at the wrong time, failing to fill a void in the development environment that other projects fill so adequately.
The Apache Gora**project is an ongoing example of how to really build out a community around code. Apache Gora was accepted into the Apache Incubator around September of 2010, with a typical incubating community numbering around 8 or so initial committers. Gora subsequently enjoyed two incubating releases before graduating some time in January 2012 to become a top level Apache project. However, during this period Gora saw users and developers come and go, never quite seeming to attract the influx of keen and interested committers one would typically associate with the other aforementioned thriving projects. A point of significance here, however, is that although the project community did not benefit from Linus’ Law of “…given enough eyeballs, all bugs are shallow”-type karma typically enjoyed by other projects, this story does display a perfect example of how a small group of dedicated and persistent committers can turn an open source project around to ultimately foster a large and active code community.
An underlying, positively implicit, and frequently ignored strength of micro-communities similar to that described above is that this core group of committers are invested, committed (no pun intended) and ultimately, essentially driven to make better software regardless of the project status. In an attempt to achieve hacker proverb perfection we could state that “given enough perseverance, growing community around code is possible”. Fast forward now to 2Q of 2014 and we see a picture which resembles nothing short of the difference between night and day. Gora:
has enjoyed 4 major releases (the most recent at time of this writing in April 2014)
boasts a 18 strong Project Management Committee, including 1 emeritus member
has successfully participated in Google’s Summer of Code program in 2012 and 2013 , retaining two of its GSoC students who now rightfully hold active PMC based on their earned merit… a success story if ever one could be told. The project also looks forward to harvesting the fruits of success after being accepted for a further two projects in the 2014 program.
has been integrated into two top-level Apache projects so far; namely Apache Nutch; a highly extensible web crawler, and Apache Giraph; an iterative graph processing system built for high scalability
has been featured in several primary conferences in the OSS community, including ApacheCon EU and NA, and has been presented on in many, many more Meetup locations across the globe
When one considers the positive initiatives mentioned above (which essentially represent output of investment and persistence on the part of a number of initial core committers) and the results they have presented for community, it is entirely appropriate to suggest that a review of the recent history of the Apache Gora project represents an accurate depiction of what it really takes to build out a solid community around code. The overwhelming success here is that given the path, the community was keen to follow it. Sometimes all it takes is for people to be shown the way before they can and will follow it.
The fact that a software project has walked the second path does not essentially mean that it will wither and die. Community, no matter how large, is infinitely more valuable than code. At times, if one finds themself posting queries to a mailing list, then finds that days/weeks/months later they return to answer their own question(s), at least this means that someone cares. It means that the embers still smolder… and as the famous saying goes, where there is smoke there is fire. Publicizing OSS is easier and arguably more important now than it ever has been. Finally, the most important aspect of all is the benefits which can be obtained by having a passionate community that can collectively build better software with that goal in mind. That is really what it takes to develop a community around code.
** The Apache Gora open source framework provides an in-memory data model and persistence for big data. Gora supports persisting to column stores, key value stores, document stores and RDBMSs, and analyzing the data with extensive Apache Hadoop™ MapReduce support. Gora uses the Apache Software License v2.0. Gora’s aim is to be the go-to storage abstraction and analysis framework for Big Data.