Web 2.0 by O'Reilly - A struggle for a definition brings this from O'Reilly:

What Is Web 2.0 - Design Patterns and Business Models for the Next Generation of Software

Eight Core Patterns of Web 2.0

Harnessing Collective Intelligence
Create an architecture of participation that uses network effects and algorithms to produce software that gets better the more people use it.
Data Is the Next "Intel Inside"
Use unique, hard-to-recreate data sources to become the "Intel Inside" for this era in which data has become as important as function.
Innovation in Assembly
Build platforms to foster innovation in assembly, where remixing of data and services creates new opportunities and markets.
Rich User Experiences
Go beyond traditional web-page metaphors to deliver rich user experiences combining the best of desktop and online software.
Software Above the Level of a Single Device
Create software that spans Internet-connected devices and builds on the growing pervasiveness of online experience.
Perpetual Beta
Move away from old models of software development and adoption in favor of online, continuously updated, software as a service (SaaS) models.
Leveraging the Long Tail
Capture niche markets profitably through the low-cost economics and broad reach enabled by the Internet.
Lightweight Models and Cost-Effective Scalability
Use lightweight business- and software-development models to build products and businesses quickly and cost-effectively.

Best Practices

Pay the user first
Web 2.0 products start by minimizing barriers to adoption and ensuring that users achieve their primary goals quickly and efficiently
Set network effects by default
A technique for maximizing the impact of individual user actions when participating within a social network (a side-effect of people pursuing their own self-interests)
Involve users explicitly and implicitly
Maximizing the value of user interactions means leveraging both explicit user participation (such as creating new content, enriching existing content, communicating, and collaborating) and the indirect side-effects of user actions (such where they go, when, how, and what transactions are conducted).
Provide a meaningful context for creation
The most successful architectures of participation do more than invite users to participate; they create a coherent, consistent context
Trust your users
A prerequisite to harnessing collective intelligence is providing a sufficiently open context to allow participation, interaction, and transactions.
Design software so that it improves as more people use it
By embracing network effects, the best Web 2.0 software (eBay, Craigslist, Skype, del.icio.us, Google PageRank, and Google AdSense) becomes better as more people use it.
Facilitate emergence
It is often surprisingly difficult to predict the best design for a piece of software, the optimal interface, or the ways in which users will use the application. Every software application faces this challenge. Web 2.0 applications impose less upfront structure and minimize the number of hard-wired assumptions to let optimal use and structure emerge over time, based on real-world application and not unreliable predictions. This encourages unintended uses and allows user behavior to influence everything from product direction to interface navigation.
Professional Web 2.0 Programming