Perhaps you're thinking about adding some "2.0" to your site or intranet, to obtain that great user generated content (UGC) -- but where do you start?
You start with commenting, of course. No blog would be a real blog without it. And most kinds of social & collaboration software wouldn't be considered very social (or collaborative) without the option to comment on content, either. And the best thing about commenting: how hard can it be, really?
The basic concept is easy enough to realize. This is what developers tell salespeople, and what the salespeople tell you, the customer. Almost every Web CMS we cover now has a commenting "feature," "module," or "plugin." And if you have in-house developers, they will chime in saying it'd be easy to roll your own, and build it yourself. How hard can it be: comments really just represent a list, where you can type in your name, your comment, post it, and it gets added to the list. In fact, I recall having built a commenting service once, and it took me about two hours. (And I'm such a terrible coder I'd never dare to call myself a "developer.")
The reality is a bit different. In fact, getting a commenting service right is quite difficult, and nobody is really happy with theirs (including us). Most people are used to the commenting built into best-of-breed blog software, like WordPress or Movable Type. Comments can be nested, you get a nice avatar next to your post, it remembers your credentials for the next comment, it emails you when somebody reacts, and maybe you can vote on others' comments.
Build this yourself and you'll spend quite a lot more time than those initial two hours. Look at what most WCM systems offer, and it's usually the bare bones basics. This disappoints and annoys visitors used to a higher standard -- not something you want when you try to engage your audience.
It gets worse when you invite the public at large to take part (and not just your trusted colleagues on an intranet). What do you do when visitors start spouting filth? That won't look good, so you'll need "naughty filtering". (Ideally, in any language -- not just the language of your content. You may not understand the Russian swear words, but quite a lot of people would take offense.)
And what do you do with other undesirable behavior: competitors deriding your brand, readers ganging up on you, or the ever-present trolls? You'll probably want to moderate -- even post-facto -- what's being posted. That sounds great until you realize how much work this will entails to stay current. So you'll need some automatic rules to help out. But even if you have a commenting system that allows you to set some variables here (e.g., "automatically approve if poster has been approved before"), you'll find you'll need constant tweaks to get the mix just right.
Then there's spam. Comments are a favorite place for user generated or robotic spam, creating as many backlinks possible to promote the pagerank of some disreputable off-shore meds or fake brands sites. If you don't have moderation, your site will become a linkfarm (and possibly get demoted in its own ranking). If you do have moderation, you'll spend quite some time wading through the thousands of fake comments and trying not to miss the real ones. You can use an external service to separate the spam from the bacon, like Akismet (originally for WordPress) or Mollom (originally for Drupal). But then you just reverse your work: dealing with false positives lingering in your spam queue.
I just spent quite some time trying to tune our own commenting service, hosted via IntenseDebate (it should now be easier to add comments either as a guest, or using FB or Twitter connect). It wasn't easy. And if you read TechCrunch, you may have noticed that blog, within the course of the past 10 months, switched from WordPress' built-in commenting, to Disqus, to Facebook comments. They had an even harder time to get it right (and are still experimenting). Even using "proven" solutions is tricky -- let alone trying to quickly whip up something yourself.
So, think commenting is a simple, straightforward feature? Think again. When a developer tells you he can build it in a day, press for details. If some sales guy says their product already has commenting, be inquisitive (it's usually something a developer whipped up in a day). The devil is in the details. You don't want him in your comments.