Quite some time ago I found out MSDN was moving towards a community content driven approach. A wiki style approach to the vast tome of knowledge known to us as the MSDN Library. This was a good move and I wanted to see it blast off as soon as possible. However the implementation has been somewhat lackluster.
When I found out about MSDNWiki I was excited. The PHP and mySQL community have had a feature with their online documentation where users contribute information about each of the topics. Items like bugs, workarounds, examples, and further explanation of the topic are scattered throughout the original documentation. It's an absolutely wonderful environment because not only do you get the syntactical expressions of how to call say ctype_alnum in PHP, but you also get a tip that it could behave strangely depending on the type you pass it. Brilliant.
Here's an example of the user defined types in mySQL from the community:
Posted by Joey Bartlett on April 14 2006 7:54am
These are very useful. You can use them for ranks.
SELECT @pos:=@pos+1,name FROM players ORDER BY score DESC;
This is the way community content should be. Only last week I was reading someone's blog that they went to the SharePoint SDK online only to find 3 or 4 properties with the bare bones, auto-generated documentation that provided nothing for them (or others).
However the implementation of MSDN community content falls a little short. Sure, users can go online and add content to some areas in the documentation. Some. Community content in MSDN documentation isn't about items that have content, it's about the content itself. Don't give me a mechanism to find entries that have content added to them because that's not how we use documentation. We use it by going to the class that we need help on. If there's content for that particular topic, great. So my suggestion is just open up all topics to community content. I've read through various junctions that "many other developer sets will add this feature over the next few weeks and months". What are we waiting for? If Microsoft is serious about engaging the community and have us supplement their documentation with real-world experience, tips and tricks, and information that's better than a skim of the XML comments in their source code, then we need to be engaged; fully, madly, deeply.
In addition, I personally prefer to use my local help as the primary source but in this day and age surely Microsoft can figure a way so that when I use my local help it can, in addition, supplement each help topic with comments from the online community? Am I asking for too much here? I don't think so. Each help topic, local or otherwise, needs to have a section at the bottom of it where anyone (maybe via your Windows Live login) can author content. A simple snippet of code, a simple tip or advice on the method or property in question. If I'm disconnected then just display the help content for me sans community content. This is neither rocket nor science.
Why can't my world be like this someday:
We could get this today without Microsoft's help although I'm not sure I want to go down that path (or if I legally could do it). Someone could setup a web site with a simple app where you create an account (for identification purposes, basic stuff like email and name) and use that account to author content. Someone else could decompile the CHM files into their separate bits and writing a small utility, inject a link to the online site in order to pull down user contributed content and insert it into a new CHM. Additionaly, using IFrames, the online site could combine the MSDN and contributed content to form an experience like what the mySQL and PHP documentation sites do now. Like I said, this is just off the top of my head and not a solution by any means and there may be issues with republishing Microsoft content; not all documentation is in CHM format; blah; blah; blah; blah.
Wouldn't it be a wonderful world if we looked up the documentation for Microsoft.SharePoint.Help.HCLockAction and actually found contributed content from users who have done something with this enumeration? Or an example of what you would use it for? Or something other than the auto-generated docs spit out from code comments that tells us nothing because the product team was focused on delivering the product (which is what they should be doing).
Now that is real community content. I can only wish we move towards that model someday. Nudge, nudge, wink, wink, say no more, say no more.