Archive for the ‘Software dev’ Category

Chinese with Ward Cunningham

Wednesday, October 24th, 2007

I met Ward Cunningham the other day and had lunch with him at an innocuous Chinese restaurant in Montreal’s Chinatown. I am just finishing up at WikiSym, the only academic conference dedicated to wikis. On Day 1, he dropped in on an open space session I was in, where the discussion centered on the viability of wiki communities. I realized (sometimes I can be slow) that this was the perfect chance to meet and talk with the guy who’s work got me interested in wikis in the first place.

So I introduced myself after the session, briefly contextualized my interest in his work and asked if I could interview him. He agreed and we began chatting, waiting for lunch plans to materialize (as they inevitably do in open space conferences). What interests me mostly about Ward (everyone here calls him that) is his self-conscious effort to build what he calls “humane” software. In particular, he writes on his wiki (WikiWikiWeb – the very first wiki!) that trustworthiness is a principle that inspired his initial wiki design: “This is at the core of wiki. Trust the people, trust the process, enable trust-building.” (See here for more about Ward’s wiki design principles).

Ward decided to build a type of software that would essentially force people to work together – wiki’s don’t function without collaboration.This broke from the traditional approach to proprietary software development, where a manager divided a project into a number of tasks and then assigned them to individuals, who then worked on their task individually. This was just “silly”, according to Ward.

Ward seemed to take a real advocacy approach and I asked him if he considered himself an activist. Now, as you know, most of this hardcore computer types tend toward libertarianism. So I was shocked when he said yes. Turns out, Ward thinks users should be able to easily use software – not just the experts. So he designed a piece of software (wiki) to facilitate collaboration in order to engender better software design. What I think is interesting – and perhaps it’s just serendipitous – is this: the process that enables software engineers to design “humane” software is a humanizing process: working together. This goes beyond simple sharing or cooperation as it is creative, and requires skills that nurture community. Wiki, as a software, concept, method, has turned out to be profound.