I had the great fortune to get to see Ward Cunningham talk about the design principles of wiki, and then afterwards to chat with him informally in the offices of AboutUs.

Ward is a programmer’s programmer. You wouldn’t confuse his presentation with the slick production of some social media marketing guru, but his wisdom shines through. I was a moderately early adopter of wikis (circa 2001), and I’m been consistently amazed by the almost magical way in which they work. It was a real honor to hear Ward speak and get to talk to him.

Though my notes focus primary on the wiki side of things, I want to note Ward’s key role in helping to both define and create the legitimacy of the Agile development methodology. Creating the first wiki, the C2 Portland Pattern Repository, was in support of this community of practitioners and activists who wanted to document and advocate for how software was really developed, rather than how it “ought to be done”.

–Wrote the first wiki to support the design patterns community. They were a community that had an email list. Within weeks, he knew that he did something good. And within a year, it was obvious that it was a success. He wanted to look back at the success that he had and understand it.

–Big Impact. Small System. Eleven Principles.

o“200 line program” with amazing impact

–People build elaborate sites with special purpose sharing tools (i.e. a certain company in Redmund), yet those sites are dead. Yet a wiki is evidently alive. How can that be?

oA: A key part of teaching kids to write is teaching them that there is value in what they write. What greater evidence of that would be to have them make contributions so well written that they contribute to a wiki?

–History of wiki

oC2 Wiki in 1994, wiki online March 25th 1995.

oWikipedia 2000

oAboutUs 2008 (finally earning a living remotely associated with wiki)

§A page for every domain name on the internet. Allows people to express what they are about.

§The first Wednesday of every month they host a get together called Wiki Wednesday. Starts around 5:30pm. Have a beer with them.

oC2 Wiki

§Served off a little PC under his desk, connected to the internet over a 14.4 modem. Designed to be only text.

§This one site has grown to over 30,000 pages about software programming.

§The whole agile programming methodology got its start on C2.

§Like AgileProgramming has over 100 pages specific to some variation of Agile, and 280 pages on variations of programming.

§This site fueled a discussion about an experiential view of what programming was, rather than an argument about what programming ought to be.

§People who are busy doing, don’t have time to write a textbook. But they do have time to write a paragraph.

§Now 3 international conferences on programming based on C2, and 2 international conferences on wiki itself.

§People misunderstood risk and attempted to defer programming as long as possible. The correction is that programming needs to start as early as possible.

oCool slide showing matrix about Agile, wiki, open source across the top, with correction, barrier, team, serves on the left side. Reproduced below.

This is a comparison of Agile as a movement to wiki as a movement to open source as a movement.

Agile

Wiki

Open source

Correction

Risk

Knowledge

Property

Barrier

Plan

Privledge

License

Team

Location

Attention

(people contribute for the attention that it gets.)

Merit

(team is pulled together across the internet because of mutual respect and trust)

Serves

Customer

Reader

Developer

–How small is wiki?

oSigWik: 4 lines, 222 chars of Perl

oRikiWiki: 40 lines of Ruby

oC2 wiki: ~200 lines of code.

oIt’s the “Hello World” of application servers.

–11 Design Principles

oOpen: Should be a page be found to be incomplete or poorly organized, any reader can edit it as they see fit.

oIncremental: It must be both possible and useful to cite unwritten pages. (This was pretty revolutionary from an information perspective. Before that, it was considered unreasonable to publish something hyperlinked unless the links went somewhere. So all the information had to be “complete” before it could be published.)

§Cool story about building hypercard system on Mac that embodied this principle, an early predecessor of wiki.

§“Being able to point to the empty spot on the table is necessary” for the creativity of design.

oOrganic: The structure of the site is expected to grow and change with the community that uses it. It’s always the right size for the community (co-evolution).

oMundane: A small number of conventions provide all necessary formatting.

§People focus on their ideas and words, rather than the formatting. This was the problem with the folks in Redmund: you could put Word documents in there, and people couldn’t help themselves from using too much functionality.

§Someone once asked “These wikis are useful, but do they need to be so ugly?” – Ward said yes, because he wanted people to believe they just needed to be literate to contribute, not an artist.

§Wikipedia has demonstrated that there is a whole lot more markup that is needed for encylopedias, like for doing citations and mathematical formulas. The key is to keep it as simple as possible given what needs to be expressed.

oUniversal Principle: The mechanisms of editing and organization are the same as those of writing so that any writer can is automatically an editor and organizer.

oOvert: The formatted and printed output will suggest the input required to produce it.

§This only works if things are very simple. This is lost with Wikipedia.

oUnified Principle: Page names will be drawn from a flat name space so that no additional context is required to interpret them.

§Want everyone in the community to be able to use the words in their every day conversations, so the words themselves are useful. No hierarchy, no prefixes, no suffixes. If you have a word on the C2 site, everyone knows what it means.

§This taught a whole generation of programmers new vocabulary, and over time even unified the vocabulary, so that over time only a single term would refer to a single concept. This is vocabulary construction.

oPrecise Principle: Pages will be titled with sufficient precision to avoid most name clashes, typically by forming noun phrases.

§To make a link, you have to have two words.

§Many connections are happy accidents. Where some might see a name clash, others would see a happy accident: a connection between two similar concepts.

oTolerant Principle: All input will produce output even when the output is not likely to be that which was desired.

§I will not output error messages. Instead, the output is shown immediately as a feedback loop.

oObservable Principles: Activity within the site can be watched and reviewed by any visitor.

§This came from reading Wabi-Sabi, and also Edwin Schlossberg on interaction excellence.

§RecentChanges is what gives that visibility. (And this came from the hypercard system.)

oConvergent Principle: Ambiguity and duplication can be removed by finding and citing similar related content.

§This is re-factoring.

§It reflects the emerging evolution of ideas – what is in the system may be ambiguous because what is in peoples heads is ambiguous.

–Wikipedia’s goal is to have neutral point of view – they are historians.

–For C2, they were activists: this is the way the world really works. Their goal is not to be historians, but to evolve the thinking in that space.

–There was a brief discussion of ThreadMode versus DocumentMode – the former is early in the lifecycle of a topic, when its all active discussion, the latter comes when the discussion starts boiling down to the consensus of the group.

–Wiki Nature: wiki as a meme vector

oPeople knew what wiki nature was, because it was wiki like.

oIt couldn’t be described, except by experiencing what it was it.

oThe C2 wiki become a destination for understanding wiki

–Three things have to come together to have a winning combination:

oMethodology: How we will learn? à (Piecemeal growth)

oCommunity: People come together to help each other learn it. à (RecentChanges)

oTechnology: some small piece of technology to enable it. à (Hypertext)

–How can so little do so much?

oSweet spot of new technology

oAssemble, guide and transform community

oLeave room for other’s innovation

–Question: Was the design goal really transforming/manipulating the community or reflecting what the community was doing into the virtual world?

oA: It wasn’t so much manipulative, it was bringing the disparate parts of the community together to have a discussion. They were proponents of Agile methodology, and the goal was to transform the naysayers, to explain the agile methodology, to try it, to explain how it works and how it addressed risk, it transformed the people who came to the community.

oComment: The community transformed itself.

–There was a cool discussion of the theoretical influences, and discussion of the role of metaphors, but I was unfortunately fading by that point.

–Ward had to dispel a notion of computer programmers as anti-social loners. When they were programming, they had a hard time discussing without fighting.

After the presentation, a small group went back to the AboutUs offices, where we continued the conversation over beers. As Hunter S. Thompson wrote in Fear and Loathing, this is where my notes become disjoint and confusing.

I asked about the feasibility of, or current activity in, creating a wiki that is a hybrid: it contains elements of explicit user feedback in the form of content, but depends on collective intelligence algorithms and implicit user feedback (clickstreams, rating of topics) on site organization and navigation. Is this still a wiki? Is it feasible? Does it violate any wiki principles.

Ward generally thought that it was still a wiki. He said that AboutUs was doing some similar things – where they once were asking users to write the content for a specific domain, now they are aggregating some of that. What he described sounded like what Derek Powazek described as “smallifying the task” in his Wisdom of the Crowds talk.

We also discussed how the concept of what a wiki is has changed as the public has become aware of wikis in general, and wikipedia in particular. Earlier, wiki really was the set of design patterns, and each person created their own wiki engine that embodied the design principles but whose implementation was customized to the particular needs of their community. (Hence MediaWiki is different than the C2 wiki, which is different from TWiki, etc.) Over time, the concept of wiki has solidified, so that people think primarily of community contributed encylopedia type knowledge in a MediaWiki environment. This can make it challenging to discuss novel implementations of wiki that embody the design principles but look and feel different than a traditional wiki.