After posting his Web 2.0 "meme map", which he apparently hadn't expected people to find until he was finished with an accompanying essay, Tim O'Reilly has now posted the full essay: What is Web 2.0. He'll be talking about it at his Web 2.0 conference next week in San Francisco.
I think Web 2.0 is a real and powerful concept, but the precise
definition is, despite Tim's work, still a bit of a muddle. His essay,
for instance, is approximately 6,000 words long and largely defines by
example. You might quibble with his examples or think different ones
make the case better. The Wikipedia entry is no clearer.
I don't think that means that Web 2.0 is any less important. In an era of bottoms-up creation and user-driven networks, the messy heterogeneity of the real world makes simple, monolithic definitions difficult.
What, for instance, defines a "blog"? Although you could try to give some common characteristics (individual voice? chronological order? permalinks?) my friend Jeff Jarvis is wise enough to refuse to answer that question:
A blog is merely a tool that lets you do anything from change the world to share your shopping list. People will use it however they wish. And it is way too soon in the invention of uses for this tool to limit it with a set definition.
This is no surprise. As I've said before, "The first rule of the blogosphere is not to generalize about the blogosphere."
Blogs are a Long Tail, and it is always a mistake to generalize about the quality or nature of content in the Long Tail--it is, by definition, variable and diverse.
The same goes for Web 2.0. Paradoxically, the lack of a crisp definition is a feature, not a bug. And as the world shifts from the limited variety of bottlenecked distribution to the infinite variety of open distribution, there will be more examples of phenomena that are hard to define but are nevertheless real and true. The future is increasingly heterogeneous, not homogeneous.One size doesn't fit all.
Regardless, I think Tim's off to a good start (and not just because he begins with the LT) in laying out a framework for Web 2.0 with these general principles:
Web 2.0 Design Patterns
1) The Long Tail
Small sites make up the bulk of the internet's content; narrow niches make up the bulk of internet's the possible applications. Therefore: Leverage customer-self service and algorithmic data management to reach out to the entire web, to the edges and not just the center, to the long tail and not just the head.
2) Data is the Next Intel Inside
Applications are increasingly data-driven. Therefore: For competitive advantage, seek to own a unique, hard-to-recreate source of data.
3) Users Add Value
The key to competitive advantage in internet applications is the extent to which users add their own data to that which you provide. Therefore: Don't restrict your "architecture of participation" to software development. Involve your users both implicitly and explicitly in adding value to your application.
4) Network Effects by Default
Only a small percentage of users will go to the trouble of adding value to your application. Therefore: Set inclusive defaults for aggregating user data as a side-effect of their use of the application.
5) Some Rights Reserved.
Intellectual property protection limits re-use and prevents experimentation. Therefore: When benefits come from collective adoption, not private restriction, make sure that barriers to adoption are low. Follow existing standards, and use licenses with as few restrictions as possible. Design for "hackability" and "remixability."
6) The Perpetual Beta
When devices and programs are connected to the internet, applications are no longer software artifacts, they are ongoing services. Therefore: Don't package up new features into monolithic releases, but instead add them on a regular basis as part of the normal user experience. Engage your users as real-time testers, and instrument the service so that you know how people use the new features.
7) Cooperate, Don't Control
Web 2.0 applications are built of a network of cooperating data services. Therefore: Offer web services interfaces and content syndication, and re-use the data services of others. Support lightweight programming models that allow for loosely-coupled systems.
8) Software Above the Level of a Single Device
The PC is no longer the only access device for internet applications, and applications that are limited to a single device are less valuable than those that are connected. Therefore: Design your application from the get-go to integrate services across handheld devices, PCs, and internet servers.
By the way, if you'd like to learn more about Tim, I can highly recommend Steven Levy's profile of him in this month's Wired. I'm biased, of course, but I think it's the best thing ever written about Tim, who really is emerging as the guru of the participation age.