After reading about communities tied to one technology in Many2Many I spent a bit of time wandering around in the CommunityWiki in general. I ran across some stuff by Lion Kimbro a little while ago, and I see his name and what seems to be the mark of his ideas throughout the wiki. That’s a good thing, I liked what I had read. And the community wiki seems to be very enlightening. I would like to make a few comments about wikis in general before I get back to reading through that stuff. There’s been a lot of interest in wikis lately, and I’m not sure how much information there has been that simply lays down why wikis have been garnering attention. If you’re a wiki guru, I know you could probably take issue with some of the definitions I end up giving here. I want to lay down in broad strokes what this wiki thing is all about however.
In the most general form, a wiki is a site where anyone can edit the pages. Take the SiteMap of the CommunityWiki for example. In the footer of the page there’s a link that says “Edit text of this page”. If you click on it you can change the content of the page and save it. Everyone else coming to that page will then see your changes by default. It would seem that this would lead to utter chaos, but it doesn’t. There’s been lots of discussion about why this community editing works, but suffice it to say that in most cases it does. What I’m more interested is why there’s been a lot of interest in wikis recently. There are a couple of mentions in the community wiki about a wiki being a document based instead of a message based medium. I think that makes a huge impact on their perceived usage. What’s meant there is that a wiki is an excellent tool for allowing a group of people to collaborate on a shared set of work. There aren’t very many mainstream technologies which do that today. The most major methods of online communication are email, IM, and now blogs. But none of those provide a good way to work toward a common goal. They are great ways of fostering discussion, which in some cases is all you want. You can email documents back and forth as you work on them, but this really only works when you have a master for the group who merges everything back together and holds the authoritative copy. Programmers realized long ago that in order to work together they needed tools with which to manage their work, so revision control systems (like CVS were born). The essential role of the version control system is keeping track of who made what changes, when they were made, and providing access to all those historical bits of info. Version control systems sit at the core of almost all software projects, they’re now considered to be absolutely essential. I think of a wiki as fulfilling much the same role, but for people who don’t happen to be working on code, for people who are working on human readable documents.
This isn’t just something that I made up, it’s part of the technical implementation of the wiki. Underneath most wiki software packages is normally some kind of revision control package, some packages actually call through to developer tools to store their revisions. I think working out from this basic isomorphism (a wiki and a code revision control system) can provide a lot of the insight into why it’s an interesting tool. I come from the developer end of things, and it’s quite common to hear developers crapping all over some popular technique because of it’s simplicity. I can’t count the number of times I used to hear developers say things like “What’s the big deal with blogging? It’s just an easy to update web page.” They do the same thing with wikis, they’ll normally say something like “What’s the big deal? So anyone can go and change a page.” The proper response is to say, “No, it’s a revision control system built into a website.” Normally if you tell them something like that, and they can relate it to what they use, you can actually get some useful input out of them rather than just criticism. That’s all I’m gonna say for now, I wanna read more CommunityWiki stuff.. maybe I’ll have time to add some more comments later.