Wednesday Aug 29, 2007

There is no chicken. There is no egg.

We spend a lot of time in the tools group at Sun thinking about users. In short, we want to get more. We talk a lot about the "chicken and egg" problem of community building, which states that you need community to get more users, but you need users to get community. How do you actually build community? The answer may be pretty simple: you don't.

I've been spending a lot of time lately working on social computing models with several brilliant colleagues, a couple of which are bona fide sociologists. One colleague, Chun Xia, has been applying elements of Marshall McLuhan's media theories to our problem, and has articulated an elegant thesis describing the relation of technology and culture.

The short form of this thesis is that technologies engender social interactions, thus becoming forms of media, which then ultimately produce culture, which then influences technology, ad infinitum. To paraphrase McLuhan: we shape our tools, and thereafter our tools shape us.

The technologies we are producing at Sun, including NetBeans, have few social aspects to them. They begin and end with the technology. Any social interaction, and eventually culture change, occurs outside the technology through a medium that is related but disconnected. For example, culture forms around use of APIs like Java EE, or around collaboration on open source projects via mailing lists and version control; culture does not form around APIs, projects, or technologies like NetBeans or Eclipse per se, but where the social interactions are happening around the usage and modification of them.

It's interesting to think of the IDE as a testbed for social computing. Thinking in this way, we can surmise that Eclipse is not popular (merely) because of its technology, but because it is a tool that has engendered a vibrant culture. IDEs, unlike much other software, are extremely malleable and oft-changing and so are fertile soil for growing cultures around them. (We can also attribute the rampant success of the modern IDE to the culture around Java, not the technology itself.)

This also fits what we see with many open source projects—the project serves merely as a substrate on which a culture is founded, and frankly, the substrate doesn't really matter much at the end of the day. The usage of an open source technology is ultimately correlated more to the essence of the culture around it than to the technology itself. Take Linux, Apache, Struts, Eclipse, Ruby on Rails—the list goes on and on—none of these are the best technologies in their class, but they are among the best cultures in their class. Good technology is relatively easy; good cultures are one in a million.

This principle also helps explain why good technologies fade into obscurity, while mediocre ones take off—vibrant culture breeds voluminous usage. Where there is an ailing or missing culture, usage languishes, and technologies wither.

Perhaps these reasons are why some of my colleagues at Sun grapple with the problem of community, yet never make much headway. To most people at Sun, "community" is a walled garden cut off from the real conversation, a case of we know better, shut up and listen. Sun is hardly alone in holding this attitude, but particularly prone to it because of its technology-centric perspective. From that perspective, community is not something that is self-modifying nor self-sustaining, rather it is something to be moderated, controlled, and ultimately held at arm's length. We talk about gathering community in order to drive usage, but we're actually grasping at a shadow of the thing we should want instead—culture.

If we foster culture, then community will come easily, for free...or not, if we don't foster a vibrant culture. I won't pull any punches: with a few notable exceptions, we don't have vibrant cultures around much of our technology at Sun, and this is at the root of the problem in driving more usage, not the technology itself.

When we talk about ways of increasing usage of a particular product like NetBeans, we need to think less about changing the technology for technology's sake, and instead think about changing the technology as a means to improve the human culture around it. When it comes to the competition, feature parity is not what we should be focusing on, but rather culture parity. We don't necessarily need better technology, but we absolutely need better culture.

So now for the part where I should be standing on a balcony:

There is no chicken. There is no egg. Community emanates from culture, and the culture begins with us. We are the grain of sand at the center of the pearl. Change ourselves, let go, and we will grow.




« February 2017