使用Wiki进行探索

与沃德·坎宁安的对话,第一部分

作者:Bill Venners
2003年10月20日

总结
沃德·坎宁安(Ward Cunningham)与比尔·文纳斯(Bill Venners)讨论了如何使用维基进行协作探索,以及维基作者和读者之间的权衡。

在软件社区中,沃德·坎宁安(Ward Cunningham)以思想的集大成而闻名。他发明了CRC卡,这是一种促进对象发现的技术。为了便于发现和记录软件模式,他发明了世界上第一个wiki,这是一种基于网络的协作写作工具。最近,坎宁安被认为是许多极限编程技术背后的主要灵感来源。

2003年9月23日,Bill Venners在丹麦奥胡斯举行的JAOO会议上会见了Ward Cunningham。在这次访谈中,Cunningam将在Artima.com上分多期发表,他深入了解了wiki和极限编程的几个方面。在第一部分中,坎宁安讨论了如何使用wiki进行协作探索,以及wiki作者和读者之间的权衡。

为什么选择Wiki?

比尔·文纳斯:你创建wiki时的目标是什么?

沃德·坎宁安:当我创建wiki时,我有一些事情想完成。我创建第一个wiki的具体目的是创建一个环境,在这个环境中我们可以将彼此的经验联系起来,以发现编程的模式语言。我之前使用过一个HyperCard堆栈,该堆栈的设置是为了实现相同的目标。我知道人们喜欢在HyperCard堆栈中阅读和创作,但它是单用户的。当我们开始PLoP(编程模式语言)系列会议,并意识到我们真正想做的是开始一篇新的文献时,我决定我需要使用HyperCard堆栈并找到一个网络等效程序。

我对维基也有更广泛的目标。首先,我认为谈话具有令人信服的性质。人们喜欢聊天。在创建维基的过程中,我想激发我们所有人讲故事的天性。第二,也许是最重要的一点,我想让那些通常不会创作的人觉得创作很舒服,这样我们就有机会发现他们必须说的内容的结构。

比尔·文纳斯:维基如何让作者感到舒适?

沃德·坎宁安:不熟悉创作的人可能有一个想法,而这个想法就是一段想法的价值。他们会为杂志写社论,除非一段太小。要为杂志写作,他们必须建立背景,说一些重要的东西,用各种各样的人都能理解的方式说出来,然后结束。这超出了大多数人的投资意愿。

但如果你正在阅读别人的作品,你会想,“是的,但还有另一点,”可以在一段中插入这样的话,“嗯,是的,但是实际上有这个。”维基上有很多对位词,“是,但是……”之类的想法。讨论小组也会做同样的事情,但有了讨论小组,一切都会失去意义。

比尔·文纳斯:为什么它会在讨论组中丢失?

沃德·坎宁安因为你跟不上。没有上下文。讨论小组往往会一次又一次地讨论同一个话题,因为人们会忘记之前说过的话。我认为常见问题解答的发明就是对这一点的回应。很多时候,仅仅阅读FAQ比加入讨论组更有价值。当我第一次使用wiki时,有一个名为FAQ-O-Matic的系统,它与wiki的想法相同,只是真正的目的是制作FAQ。我看了看,我想,“是的,这是同一个想法。”但后来我想:“不,我更喜欢以文档为导向的形式,而不是问答形式。”我们试图在我们的文献中创建的模式有点像常见问题解答,但可能更多。目前维基上可能有10000或15000个模式,记录在25000页上。

比尔·文纳斯:你认为什么是适用于wiki的好应用程序?维基到底在哪里闪光?

沃德·坎宁安:如果你试图回答一个你不容易提出的问题,或者没有一个你需要知道的自然结构,维基的工作效果最好。对于“项目中发生了什么”这样的问题,我们可以设计一个数据库。但不管我们在数据库中输入什么字段,结果都是对项目中发生的事情很重要。这个项目最重要的是你没有预料到的东西。

Wiki页面是非常自由的形式。整个Wiki都有一个超文本结构,但在给定的页面上,在你掌握自然语言的多功能范围内,你可以说任何需要说的话。因此,wiki是跟踪项目状态的好方法。例如,您可以将我们的模式视为一个长期运行的项目。我们不知道目的地是什么,但我们想边走边拍。

此外,Wiki在您可以放心地将控制权委托给系统用户的环境中工作得最好。维基中没有很多关于谁可以在什么时候做什么的逻辑,因为维基并不真正了解你在做什么。它只是为你保存页面。许多约定都是为合适或不合适的用途而建立的,但它们都在用户的脑海中,而不在应用程序的业务逻辑中。如果你有一个信任的社区,而不是寻找计算机来强制执行某些行为,那么这种方法很有效。例如,有时有人问我维基是否适合公司环境。我认为,有些公司团结一致,足以信任自己的员工,当然也有一些公司并非如此。那些不相信自己的员工能够维护网站的公司需要维基以外的东西。

了解大局

比尔·文纳斯:读者如何对维基中的内容进行全面了解?

沃德·坎宁安你首先要明白的是,因为我们让维基对作者来说更容易,实际上对读者来说更难。那里有一个组织,这个组织可以改进,但它没有高度的组织性。因此,读者的感觉就像是在荒野中寻找花边信息。你偶然发现一些很棒的作品,你会说,“这太棒了,为什么有人不把所有很棒的作品都列出来,这样我就不用再看其他的了。”换句话说,“为什么没有人整理一下,这样我就能很快得到问题的答案?”他们迟早会意识到,“哎呀,我可以做到。”他们花了一两个月的时间找出自己关心的东西,然后制作一个页面,这是他们对维基组织的看法。

我不喜欢分类。当你最感兴趣的是那些不适合的东西,那些你没有预料到的东西时,很难想出一个有用的分类方案。但是一些人决定每一页都应该进行分类。他们提出了一个基于页面名称的方案,以建立wiki的分类结构。这些关心分类的人会维护它。如果有人编写了一个页面,但没有对其进行分类,其他人会说,“哦,这应该被归类为维基维护或设计模式。”

比尔·文纳斯:他们如何将页面归类为维基维护?

沃德·坎宁安:他们只是引用了一个名为WikiMaintenanceCategory的页面。单击该链接,它将转到解释类别以及该类别存在的原因的页面。因此,要将一个页面放入一个类别,惯例是放置一个指向描述该类别的页面的链接。这使得页面被标记。如果您想了解类别是什么,请访问类别页面的链接。如果您想查看该类别中的页面,可以搜索引用该类别页面的每个页面。

比尔·文纳斯:我想搜索是我开始探索新维基的一种方式。在某种意义上,维基就像互联网的一个非常小的版本。到处都是。我如何找到我要找的东西?我可以从搜索关键字开始。

沃德·坎宁安:没错。人们认为,任何以“类别”结尾的wiki页面都是值得搜索的搜索词。你可能会在谷歌上寻找小说,但如果人们没有给他们的工作小说贴上标签,你可能就找不到。分类系统是一组解释分类基本原理的页面,你可以阅读这些页面。他们占据了名称空间的一小部分——所有以“类别”结尾的单词——并开创了这些页面讨论其他页面类别的先例。这太棒了。这是平衡的。如果我试图设计一个解决方案,它可能不会那么简单,甚至不会那么好。我喜欢的是,有一个活跃的社区,负责管理类别集。有时他们把类别弄错了,但后来又改正了。

Wiki的时间元素

比尔·文纳斯:你所描述的让我想起了头脑风暴。你召集一些人来充实你看不清楚的东西。

沃德·坎宁安:Wiki有头脑风暴的感觉,尽管它没有那么互动。你可以做10分钟的头脑风暴,30分钟的分析头脑风暴的结果,然后在45分钟内做一些事情。维基的速度较慢。你可以写一页关于一个想法,或者可能写一页有关一堆想法。然后你可以在一周后回来看看这一页上有什么进展。但如果你15分钟后回来,就不会发生什么事了。在维基上,事情以几天或几周的速度发生,因为人们倾向于按天或周进行浏览。

维基有一个有趣的时间元素。如果你阅读新闻组或电子邮件列表,你会觉得现在的情况就是你在列表中的位置。如果你落后了,那是一场斗争。我不想在维基上有年表。如果你在维基上读东西,我不想让它对你来说是一年前、一天前还是一分钟前写的。这意味着我们需要一些方法来获得上下文。

如果你只写了一页,那该页必须是对其他内容的回应。因此,你所做的就是在一段话中,在所有其他页面的上下文中,说出页面的内容。人们对这些页面名称非常熟悉。他们会看到一个新页面,并阅读带有上下文页面链接的段落。如果他们已经知道这些页面,他们会继续阅读。如果他们不知道这些页面,他们会说,“哦,这一页没有任何意义。我必须去读那些其他页面。”所以,如果你知道上下文,你就不必看。但是如果你不知道上下文,你可以去读它。上下文就在那里。

比尔·文纳斯:听起来你必须了解一个维基网站。花时间在那里,你就会熟悉它。一开始,当你走进来,看到这些东西到处都是,但对读者来说,这些东西并不一定是条理分明的,它可能会让人感到困惑,信息量也不大。

沃德·坎宁安没错,维基总是在被组织的过程中。但每花一个小时组织一次,就要再花两个小时添加新材料。因此,维基的现状总是有部分组织的。

Wiki和可读性

比尔·文纳斯:我真的很喜欢维基的想法,但我发现很难阅读很多维基页面。可读性问题是我从未在Artima.com上放置wiki的主要原因。Artima.com也是一种基于web的协作文档,但更具结构化。在维基中,没有一个编辑为读者组织材料。所有页面都是协作的。这种结构是协作的。编辑是协作的。你从维基的协作中得到了什么,值得在可读性方面进行权衡?

沃德·坎宁安:作为一名维基读者,你可以接触到以前没有发言权的人。我们为之发声的人对编写和发布计算机程序有很多本能。我们的行业在其出版物中尊重某些传统。例如,如果你想为科学期刊撰稿,你应该接受同行评议。同行评议的一部分是你熟悉所有其他文献。而其他的文学作品不知何故变得无关紧要。关于编程的内容与实践程序员的感受不符。有了维基,那些没有时间掌握文献并在即将阅读的期刊上获得专栏的实践程序员就有了一个地方,可以说出对他们来说重要的东西。wiki提供了不同的视图。事实上,你可以从个人经历和引用上次阅读内容的时间来判断某人何时在维基上写作。

比尔·文纳斯:你怎么说?

沃德·坎宁安你可以通过他们是否谈论诸如“玛丽·安就是无法正确处理这部分”之类的事情来判断。这不符合科学传统。如果有人引用一位作家的话,说:“某某说了些无稽之谈,而你们这些家伙却愚蠢地不听。”。另一方面,如果有人说,“你知道,在过去的三个项目中,我们尝试过这样做,但一次都没有成功。我们总是被迫做一些其他的事情来把它带出去,”有一个人把它带出去了,他在告诉我一些深刻的事情。如何解释这一点由我决定。这只是他的经验。然后你可能会看到更多的段落说,“是的,这发生在我身上,但我们用另一种方式把它弄出去了。”现在有两种方法可以把它弄出来。突然之间,你在和那些把软件推出去的人交谈,而不是和那些谈论软件推出的人,这是一个很大的区别。

下个星期

10月27日星期一回来,观看与贝特朗·梅耶对话的第一部分。如果您想每周收到一封简短的电子邮件,在Artima.com上发布新文章,请订阅Artima新闻稿.

资源

Bo Leuf和Ward Cunningham是Wiki方式:网上快速协作,可在Amazon.com上找到:
http://www.amazon.com/exec/obidos/ASIN/020171499X/

沃德的维基:
http://c2.com/cgi-bin/wiki?WikiWikiWeb

沃德的博客:
http://www.artima.com/weblogs/index.jsp?blogger=ward

波特兰模式库:
网址:http://c2.com/ppr/

CRC卡信息:
http://c2.com/cgi/wiki?CrcCard

XProgramming.com——极限编程资源:
http://www.xprogramming.com/

常见问题-O-Matic:
http://faqomatic.sourceforge.net/fom-serve/cache/1.html

PLoP,编程模式语言会议:
http://jerry.cs.uiuc.edu/~扑通一声/

反击!

有什么意见吗?读者已经发布了1条评论关于这篇文章。为什么不呢?添加您的?

关于作者

Bill Venners是Artima Software,Inc.的总裁Artima.com的编辑。他是这本书的作者,Java虚拟机内部,面向编程Java平台架构和内部结构概览。伊斯JavaWorld杂志上的热门专栏涵盖了Java内部,面向对象设计和Jini。Bill在济宁社区自成立以来。他领导了基尼社区生成ServiceUI API的ServiceUI项目。服务用户界面成为将用户界面与Jini服务,是首个批准的Jini社区标准通过Jini决策流程。比尔还担任民选议员基尼族社区初始技术监督成员委员会(TOC),并在此角色中帮助定义治理社区的过程。他目前投入了他的大部分将Artima.com打造成一个越来越有用的资源对于开发人员来说。