Sunday, January 1, 2012

Wikis Suck

There, I said it. They suck. And it's not just wikis; pretty much every documentation system I've seen sucks. I'm not going to outline a solution here, because I don't have one. I can only say that these things are pretty awful, and until we can find something that actually solves these problems, we won't have a truly great documentation system out there.

I apologize for the nature of this post. It's a problem I've seen for years, and been trying to find an answer to. I just don't have one, and the problem is only getting worse. Maybe somebody out there can help to refine this problem into something that an answer can happen. In no particular order, here's the problems I've got with wikis:

Organization. I have yet to see something really handle this well. A straight up hierarchy doesn't work. Too often, a given document belongs in two places (or more). Anything that enforces a hierarchy must require a choice of where to place something. On the flip side, when discussing a wiki, very few of them impose any sort of hierarchy. In fact, some of them don't even have a hierarchy at all, placing every item in the same "folder". This makes for a mess when it comes time to search for something. Tags can help in this regard, but they're still far from ideal. How do we make sure that a given article is sufficiently tagged? How do we make sure that the searcher knows which tag will provide the desired results?

Authoritativeness. Sometimes, you need documentation that you know the source. You need to know it came from the right person or team. Documentation that is crowd-sourced simply doesn't always cut it. On the other hand, sometimes you need to have areas where the crowd can update things. This is a balancing act that is very difficult to get right, and I'm not convinced that the open model of the wiki is the right solution. Simply locking a contentious page doesn't actually solve the problem of determining accuracy, and the lack of accuracy in those cases undermines authoritativeness.

Access Control. When dealing with something open to the public, you're going to get spammers and defacers who don't care about what you have to offer. They're just going to come in and update every page they can with their garbage, and you have to clean up the mess. Some wiki systems simply go with "allow the user to revert to a previous version of the page", which is not actually useful at prevention.

Cross-Referencing. This seems like I'm talking about the primary strength of wiki: It cross-references so easily it's amazing. I can reference something anywhere (within the wiki, outside the wiki) without much effort at all. And yet, it's still a major weakness. Cross-references are entirely manual across all of these systems. If I'm reading a wiki, and decide to make a new page for a given phrase, I can find myself surprised that the page already exists. I have no way of knowing it unless someone else does the work of making the link.

Supported Formats. They support one specific type of media: Specialized markup text using the markup style of their choice. Why can I not upload a PDF, or DOC, or ODT? Hell, any other format. And I don't mean as an attachment: I mean as a first class piece of data to be reviewed, searched, and edited.

wikis are impressive, and do a difficult job. I'm not convinced they do it well, though, and I'm sure I'll have other issues to discuss about them later. I just wish I had a solution, instead of a rant.

The closest description I can have is that the ideal documentation system would be automatically cross-referencing, supporting a variety of data formats, with an intelligent search that would help me find what I'm looking for. It sounds like I'm asking for some sort of local internet with a Google search. Maybe I am, but I don't think so.

I just don't know. Does anybody else have any thoughts?