Manufacturing a community
By avalon on Aug 26, 2007
OpenSolaris, the open source community that is bravely forging ahead in unchartered waters for the company formerly known as Sun Microsystems, now known as JAVA. OpenSolaris is the creating of Sun, designed, architected and implemented by Sun. But can a manufactured community work? And how long does it take to become a real community?
In thinking about how the OpenSolaris community came to be, I find the temptation to liken the construction of OpenSolaris with that of modern city planning: someone sits down, designs where roads will go, where houses will be, where shops will be, etc. The end result is carbon copied suburbs/communities with neatly mowed lawns, 2.5 kids per house, etc. Compare this to parts of cities that have grown organically, before we tried to plan everything: location, geography, access to water and transport formed the foundation for where communities grew. In some cases there have been extraordinary influences (gold rushes) that have led to a surge in local development of a community, only for them to be ruins today because the foundations were rotten. Compare how the core of a city such as London functions with that of its outer suburbs: readily available public transport, need for a car is low as many things that are necessary for day to day life are not far away, etc. The community has grown and built itself up in a way that enables it to function. In contrast, modern communities are designed around an expectation that people will go there and function in a specific way (ie drive a car) rather than evolve. To visit a city with history is akin to visiting a living organism, whereas those communities that have been created feel "stale" by comparison.
Step back to OpenSolaris. Someone came up with a grand plan for how OpenSolaris would be built, with communities, community leaders and a bunch of process to match. Why? Because there was a perceived need to be able to present OpenSolaris as an 2-minute instant noodle style of dish: add some water, push the button and shortly thereafter, voila, baked open source community. Compared to all of the other significant open source projects, there has been little or no evolution. Leaders haven't emerged: they've been selected because of what they do or who they are at Sun. The structure within OpenSolaris has been loosely modelled on Sun: create communities that reflect the organisational structure. But here's the catch: for an instant bake OpenSolaris structure, was there any other way that we Sun folk could recognise and function with?
What is wrong with this approach? Well, where (for example), is the user community for OpenSolaris? Or is the user community simply the OpenSolaris community itself? Is there a developer community? Is there a kernel hackers community? What about a systems administrator community? Or one of people interested in appliances? Some of these do exist today, which is good, but similarly we have communities that are dedicated to single pieces of technology where they otherwise might not exist as explicit communities if OpenSolaris had grown.
The best example of this is SMF. No other open source platform has a community around what it uses to boot the system up into a state that it can be used. Does SMF need to be a community in its own right? Yes, it deserves and needs its own discussion forum, but SMF is a central topic for any OpenSolaris systems administrator and in part for some application developers too, although their involvements are quite different. As part of this consideration, it is important to acknowledge that every platform is different so maybe this construct is correct for OpenSolaris.
Part of this issue is that in the construction of OpenSolaris, thinking has been limited to communities. Community this, community that. Everyone wants to have or be a community. In contrast with other open source projects, there is no concept of "leaders" and communities form around individual products that are in general independant of operating systems. People gravitate to be around something that interests them. The last point is important to consider as there is only one product being delivered by OpenSolaris: OpenSolaris itself. The reflex action in OpenSolaris to support a group of people that want to do X is to say "you need a community to do that" - this puts the cart before the horse. For example, if someone came to OpenSolaris and wanted to port it to the ARM CPU, they'd be offered an ARM-OpenSolaris community. Sure, this gives them a great platform to do lots of wonderful thigns and share what they're doing, but for the peron(s) involved, it creates more infrastructure that they need to manage (web pages, leaders, etc) than what they're usually interested in at first: getting it to work. It could be argued that a community of people porting OpenSolaris to various platforms would have more to offer as people traded tips on how to get it working on their hardware (some issues in tasks like this are platform/machine dependent, others relate to the architecture of the operating system.) The catch here is that it is unlikely with the current OpenSolaris makeup for such a community to happen.
It is almost like OpenSolaris has been built to be a competitor of the existing open source communities, rather than being a participant of the open source movement/community as a whole.
If OpenSolaris was made up of living pieces of Lego and we dismantled the current building, would it put itself back together the same way as it is now? Would it even look the same? And dare we dismantle it now or in the future so that it can build itself up in the fashion that OpenSolaris (and not a group of architects at Sun) desires?