The Case Approach
Some learning is cognitive. “Do A, then you’ll get B.” On the other hand, some things you need to learn are less cut-and-dried; pedagogically, we refer to these topics as method. How do you teach method? The Harvard Law School pioneered the case approach, and revolutionized legal education. How do open source communities work? That’s a methods question. Here’s a cursory case study of the community that maintains a very successful open source project, GNU/Octave, or, henceforth, simply “Octave.”
What is Octave?
First of all, what is Octave? Octave is an interpreted numerical environment that efficiently handles arrays, matrices, and higher-dimensioned analog, with applications in science and engineering. There are loads of “toolboxes” to do statistical tests, optimization, control, and other fun things.
Primary language: C++, accounting for approximately half; Octave itself about 14%, with remainder distributed among several others.
The licensing is likewise diverse, though the bulk of the files were under GPL version 2 or 3.
Divide and Konquer
There is a large development community. ohloh identified 195 contributors, and 26 individuals committed changes last month. The contributors come from several continents. We identified two channels of communication (there are probably more): an IRC channel (#octave) on Freenode, and mailing lists for users and maintainers, respectively. Given the geographic distribution of the community, it is not surprising that more traffic was seen on the mailing lists than IRC.
One of the reasons why Octave has what seems like a large ratio of committers to contributors-at-large is attributable to the structure of the project. In addition to the base language, there are numerous files (many written in Octave itself, others from compiled sources for performance) that perform core operations, as well as the numerous toolkits mentioned earlier. Each toolkit can function and exist more or less independently from the others, so a “divide and conquer” methodology can work.