One of the more fascinating patterns in online communities is the emergence of highly engaged communities and behavioral patterns built on old, and many times, bad technology.
The classic example is Craigslist. Despite the old and sub-optimal design, people continue to use Craigslist and have created behaviors of their own to meet their needs. Check out this excellent diagram by Andrew Parker that shows all of the startups that have been built around each section of Craiglist.
The existence of these highly engaged communities and the fact that the crowd coalesces around a common cause despite technological hurdles is a strong indicator for the market need.
Also fascinating are the patterns of behaviors that emerge within those communities. For example, Style Forum is a highly engaged community of people passionate about mens’ fashion. Within this community, some behavioral patterns have emerged:
Only recently have the forum administrators added new features based on that user feedback, but the new features are big hits. There have also been startups launched to build very focused products around those specific behaviors.
This means that you should have just the right amount of structure in your product to define the core action, but have enough slack to enable serendipity.
An example of this is Twitter. Early Twitter users created the @ reply, retweet, and #hashtag.1 When the Twitter product team recognized these behavioral patterns, they productized these behaviors and made them part of the core product to own that behavior.
Another example of this is what my friend Joe did at The Fancy. His product did one thing very well (posting pictures of objects), and then he closely observed what his users wanted. He found that his users were scouring the internet to find a place to buy the product and posting the link in the comments.
So not only did he build a product that captured that serendipitous behavior, he recognized the behavioral patterns and productized around that. The result is the new e-commerce offering you see on pages like this one.
Maximize structure around your single core behavior and minimize structure around edge cases to maximize serendipity.