Leveraging Users' Intelligence
I have been using Babylon for few years now. Its a pc side dictionary that can translate between most languages. Its fast with a nice user interface and lots of cool features. You can click on a word and it would give you the translation from different sources. It has spelling correction and pronunciaton. There is one feature though that really made Babylon stand out and that is user created glossaries .You can think of a glossary as a small dictionary for a particular topic like medical terms or bird names. Instead of providing all the content themselves, Babylon created a file standard that users can follow to create their own glossaries. The glossaries are shared with other users through Babylon's website. The website also keeps track of how many times a particular glossary was downloaded and that's an indication of its quality. Now all the sudden, Babylon offers very rich content with very little effort from their side. And believe me there are glossaries for almost everything from sports to animals and pets. The ones I found most useful are the slang glossaries cuz you won't find those in a regular dictionary.
The idea could be generalized to be taking advantage of users to enhance the service being offered. Off course that has to be done in a way to leverage the power user without creating a burden on the average user. I can think of three ways where that concept can be put into practice. The first way, which I described in the example of Babylon, is letting the users create most of the content. That content does not have to be only data, it could be skins for an application, graphics for buttons and so forth. Did I mention Wincustomize? It has super cool docks, widgets and icons. The second way is to let the users create most of the functionality. Wow, really? Its true, if you are the service provider all you have to do, is to design your application in the form of a platform where users can add features on top. The best example for that is firefox where most of the plug-ins are created by independent develpers. Third way is to take advantage of users' intelligence to do some, and usually the most difficult part, of the logic. Instead of implementing the logic through lines of code, it would happen in users' brains. How does Gmail know if a message is a spam or not? Let the user decide and use that information to mark that message pattern/sender as a spam in the future. Which results does Google show first when you type in a certain keyword? Use past information of what other users have selected in correspondence to a similar keyword.
So why would a user be willing to do all this work for free? Well, users like to be associated with successful applications, because that in turn makes them successful. Second, its a huge source of personal gratification to know that something you created is being used by alot of people. Third, they get rewarded through fame as they get name credit for their contribution especially if its popular among other users. The best part is that its not only free contributions from users, its also free marketing because users would be marketing their own work. So in summary, designing a service in a way that enables users to contribute yields to reduced cost, richer features and content and better marketing.