I like Jazz, especially bebop and cool. Jazz is both a style and repertoire. The style sets the rules of the game: the rhythms, chord progressions, etc. The style sets the framework within which improvisation can take place. But sometimes overlooked, but just as important, is the repertoire. Early jazz artists all knew the same core of songs, like Sweet Georgia Brown that they could all play together and improvise around, a common ground where all the players can participate.

Open Source Software is similar. Open Source is both a license and a process. The license, GPLv2 or MIT or whatever, sets the parameters of what can and can't be done. But often overlooked is the process by which open source software gets written: the collaborative, give-and-take of programmers creating small gems of contributions, filling in corners, adding functionality, pushing and stretching the borders of what the software can do. This collaboration is similar to jazz's improvisation around the repertoire. It's the tools, design patterns, language idioms, conventions and collaboration that enable the construction of a larger piece.

Some outfits get one part of Open Source, but not the other. Some companies like SugarCRM or Magento, release their software under an Open Source license, but don't enable others to contribute. This is like a jazz performer playing an original composition. It may fit the Jazz style, but nobody can join in the playing. Others like Salesforce.com have an open development platform, but the license isn't open, so that the rules of the game aren't set by the players. It's like the manager dictating to the band the style of music they can play, e.g. only Hard Bop. If the band's style can't grow and evolve, they feel increasingly constrained, lose enthusiasm and move on.

Recap: just as Jazz is both a style and repertoire, Open Source is both a license and a process. It takes both to be successful.

seo plugin e-max.it