[对话软件大师]沃德·坎宁安 第一部分 揭秘维基

在开发社区,沃德·坎宁安作为“点子产生器”备受推崇。他发明了CRC卡,一种对象发现的技术,用来方便地发现和文档化软件模式;建立了世界上第一个维基站点,一种基于网络的协同写作工具。最近,坎宁安又被认为是极限编程的多项技术背后的主要灵感源。2003年9月23日,在丹麦奥尔胡斯市举办的JDOO大会上,Bill Venners见到了沃德·坎宁安。在这个将会被分批发表Artima.com的采访中,坎宁安提供了在内部视角对维基的观察和对极限编程的一些展望。最 初的部分,坎宁安会解释维基在协同探索方面的应用和维基作者与读者之间的交流。


 

为什么开发维基?

 

比尔:创立维基时你的目标是什么?

 

坎宁安:当时我有一些事情想要达成。我对第一个维基的具体目的就是要创建一种环境,在那里我们可以把每个人在编程模式语言方面的体验都链接在一起。之前我使用HyperCard程序,该程序被开发来达到同样的目的。我了解人们已习惯HyperCard上进行资料的阅读与写作,但它是单用户的。当我们开始PLoP[编程模式语言]的一系列会议,并意识到我们真正想做的是建立一种新的学科时,我决定放弃HyperCard程序并寻找一个基于网络的替代品。

 

我对维基还有一些泛泛的日标。首先,人们有一种爱谈话天性。人们喜欢谈话。创建维基,我希望解放我们所有人讲故事的天性。其次,也许是最重要的,我希望那些平常不善表达的人们发现它易于写作,这样,这里就存在一个机会让我们能发现他们表达的事物的脉络。

 

比尔:维基怎样帮助写作者?

 

坎宁安:某些不习惯写作的人可能有了一种想法,这想法只是一个片段。 如果他们要为杂志写一个随笔,但一个片段实在太简短了,他们需要建立一个上下环境,去说明某些重要的东西,用一个可以让多数人理解的方式去描述它,然后还要总结。这些都超过了多数人所愿花费的精力。

 

但是,如果你先读到了一些其它人的文章,然后你想,“对,但也可以这么想,”;也可能浏览某个段落然后说,“嗯,是这样,但事实上……”。在维基上,有许许多多这种想法对激的火花,这种“是的,不过……”式的观点。讨论组也在做同样的事情,不过,在讨论组中,这些火花最终都不见了。

 

比尔:为什么它们在讨论组都会丢失?

 

坎宁安:因为你无法保存它们。没有上下文环境。讨论组更倾向于用新的主题一遍又一遍地覆盖同一页面,因此人们总会忘记之前讨论过什么。我觉得FAQ(常见问题解答)的发明就是为了应付这一情况。很多时候,仅仅是阅读FAQ都比加入讨论组有价值得多。我刚开始建立维基的时候,也有一个被称为FAQ-O-Matic的系统——就是维基里的FAQ——致力于建立有关常见问题的解答。我看着它想道“是的,这是同样的理念。”可接着我又想:“不,我更喜欢面向文档的形式,而不是‘提问回答’的形式。”在维基中我们建立的模式是很像FAQ的,但又能给出更多信息。现在,在维基中大约有10,000 15,000个模式,25,000个页面的文档。

 

比尔:你理想中的维基程序是什么样子的?在什么地方维基表现抢眼?

 

坎宁安:维基的作用发挥最好的,就是当你尝试去解答一个无法很容易地描述出来的问题的时候,在那些不存在一个不言自明的结构使你明白接下来你需要了解些什么的领域。比如说这样的问题:“这个项目接下来是什么?”我们可以设计一个数据库,但是无论我们将什么放入数据库中,得到的都不是那些对项目的继续进行有重要作用的东西。因为对于该项目什么是最重要的,你无法预先考虑。

 

维基页面形式上是很自由的。贯穿整个维基的是超文本结构,但在一个给定的页面,在你使用自然语言作出多变命令的范围内,你可以描述所有需要描述的东西。所以,用以追踪项目状态,维基是一个很好的方式。你可以考虑一个我们的模式系统,比如说,一个长时间的项目。我们之前并不知道最终的目的,但我们要令它与我们想要的一致。

 

此外,维基在那种你可以放心把控制权分配给系统使用者的环境中工作得最好。在维基中并没有很多的规则来限制谁什么时候可以做什么,因为维基并不能理解你所要做的是什么。它仅仅是为你保存那些页面。大量的讨论被用来证明或证否某物是不是可用,但这些都不在维基程序的业务逻辑中,而存在于用户的脑中。如果你们的组织是相互信任的,而不向系统寻求对某些操作行为的限制功能,维基系统就会工作得很好。例如,我曾考虑过维基是否适合商业环境。我想有些公司的雇员们之间拥有足够的信任。当然,也有一些公司的并不认为他们可以信任他们的雇员可以自行维护一个网站,那么他们不能使用维基,而应该去找些别的。


得到事物的大轮廓

 

 比尔:在维基中,读者怎么样获得有关一切的总体轮廓?

 

坎宁安:首先,你得知道由于我们创建维基是为了方便写作,所以我们对阅读确实有点不友好。在维基中材料是有组织的,但这个组织还有待改进,它并不是高组织性的。所以,对读者来说,寻找一个有用信息的感觉得就像在荒野中寻找一小堆草料一样。你只能很偶然得碰到一些重要的东西,于是你说:“真荒谬,为什么没有人把所有重要的片段收集起来做一个列表,这样我就不需要自己把其它的找出来。”或者说:“为什么没有人把这些组织起来,让我能很快地找到问题的答案?”迟早他们会认识到,“呀,我可以做这个。”他们花了一到两个月收集到他们关心的东西,然后做一个页面。他们所呈现出来的,就是维基的组织方式。

 

我不是分类迷。当你真正感兴趣的事物是那些难以分类的事,无法预见的事的时候,建立一个好用的分类表是非常难的。但是有人认为每一个页面都应该被分类。他们提出一张基于页面名称的表,用以为维基建立一个分类系统。这些人关心分类,并维护它。如果有人写了一个页面却无法分类它,某些人就会说“噢,这应该被分类于维基维护或设计模式。”

 

比尔:他们怎么把一个页面分类为“维基维护”?            

 

坎宁安:他们只是做了引用链向一个叫作“维基维护目录”的页面。点击那个链接,就转到一个页面,这个页面会解释目录的意义及建立它的理由。就是说,把一个页面加入目录,就是在页面上加一个链向描述目录页面的链接。这样就标记了页面。如果你想知道目录是什么,随着链接到目录页;想知道目录中包括哪些页面,就搜索所有引用了该目录的页面。

 

比尔:假设搜索是我开始探索新维基的一种方式。从某种意义上来说,维基像internet的一个小版本。东西散落各处。我如何找到我所要寻找的?可以从搜索关键字开始。

 

坎宁安:对。人们约定任何一个名字以“Category”结尾的页面都是值得搜索的材料。你可以通过Google搜索小说,但如果作者不把他们的作品标记为“小说”,你可能搜不到。目录系统是页面的集合,这些页面也解释了该目录的本质,而你可以阅读这些页面。他们使用了命名空间的一小部分——所有的词都以“Category”结尾——并且开创了这些页面描述了其它页面的类别的先例。这样很好,并且平衡。如果我尝试开发一种解决方案,它无法既简单又好用。而我最喜欢的是,有一个活跃的社区在管理着目录的集合。有几次他们把目录弄错了,但很快又改好它们。


维基里的时间

 

比尔:你的描述使我经历了一个小型头脑风暴。你聚集了一些人,他们把本不清晰的图景描述出来。

 

坎宁安:维基一点头脑风暴的感觉,虽然它本身并不是交互式的。你可以用十分钟做头脑风暴,然后花三十分钟或四十五分钟分析这次头脑风暴的产出。在维基中,步调更慢。你可以就一个想法写一个页法,或者为一系列想法写好页面。一周之后再回来看看这个页面发展出些什么。不过,如果你仅过了十五分钟就回来了,可能什么都不会发生。在维基中,事情的发生时间是以天或者周来量度的,因为人们更倾向于以每天或者每周来浏览一下。

 

维基中有很有意思的时间元素。如果在阅读新闻组或邮件列表,你会感觉到你在列表中的位置就是“现在”。如果你落后了,就得努力赶上。我不希望在维基中出现一个时间轴。如果你在一个维基站读什么东西,我不希望这个东西是一年前,一天前,或者几分钟前写就的成为一个问题。那意味着我们需要一些方法去取得上下文环境。

 

如果你正在编辑一个页面,这一页面又提到了其它东西。那么你需要做的就是在一个小节里面描述在所有其它页面组成的上下文环境中,这一页面是关于什么的。人们会变得很熟悉这些页面名称。如果他们已经了解那些页面,那么继续读下去。如果他们不知道他们页面说些什么,他们会说:“噢,这个页面完全读不懂。我得去读读其它页面。”所以,如果你了解上下文环境,你没必要去浏览它们。但如果你不了解上下文环境,你可以先去阅读,它们总在那里。

 

比尔:听起来你需要去了解一个维基站点。花些时间,让自己熟悉它。开始的时候,它可能有点令人迷惑,也不富含信息。当你进入看到东西散落各处,并没有为读者作必要的组织。

 

坎宁安:是的,维基站点总是处于被组织的过程当中。但是,对应每一个小时的组织,就有两个多小时在加入新材料。所以对一个维基站来说,现状,就是指部分组织化。


维基与可读性。

 

比尔:我真的很喜欢维基这个主意,但我觉得有些维基页面难以阅读。可读性是我从来没有把一个维基程序放在Artima.com上的主要原因。Artima.com同样也是一个基于网络的协作文档系统,但是结构更好。在维基中,并没有编辑来为读者组织材料。所有的页面都是协作完成的,结构就是协作。编辑是协作。在维基的协作中,你得到什么使它值得与可读性作一个折衷?

 

 

坎宁安:作为一个维基的读者你是在接近一个平常很少发表意见的人。我们给予话语权的人有一种想要编写和交流电脑程序的本能。我们的商业文化看重出版。打个比方说,如果你要给一个杂志供稿,你就应该作功课。熟悉领域内其它人的文献是这种功课的一部分。而其它的人文献会多少有些纠缠于枝节问题。写作有关编程和文章跟熟练编程的感觉是完全不同的。使用维基,那些没时间去熟悉文献的,没时间阅读杂志上专栏的资深程序员就拥有了一处地方去表达对他们来说很重要的那些东西。维基提供了不同的视角。事实上,在维基中你可以区分写作自己个人经验的人和仅是引用最后阅读的材料的人

 

比尔:如何区分?

 

坎宁安:你可以这样区分:如果他们这样写一件事情:“玛丽安就是没办法让这部分正常运作。”这并不是科学腔调。如果一些人引用某个作者并且说:“如此这般这般如此,你们不听这些就太蠢了。”这就是一个崇拜自己所读的书的人。另一方面,如果有人说。“你知道,在最近的三个项目中我们都努力这么做,但没有一次成功。我们一直被迫使用它做一些事而不是将它们扫地出门,”而有个人已经将它扫地出门了,他告诉我们的事就会很有用。这只是他的经验,如何理解就是我的事了。接着你可能会再看到其它的段落写道:“是的,这也发生在我们身上,但我们用另一种方式将它扫地出门了。”现在,有两种方法将它扫地出门。突然,你是在与将软件扫地出门的人们交流,而不是与正在将软件扫地出门的人对话,这有很大的区别。

相关文章:

右舷

↑ Grab this Headline Animator

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.

Comments

No comments yet.

Leave a comment

(required)

(required)