Wiki上车指南

Wiki:极客的斧子

提到Wiki,容易想到维基百科(wikipedia),维基百科从2001年开始运作,在维基百科搜索Wiki会发现,Wiki的概念始于WikiWikiWeb,95年3月25日上线。也就是说维基百科是Wiki的发展历史上最著名的团体Wiki项目之一,要说Wiki的始祖,还得是http://wiki.c2.com/。

The software and website were developed in 1994 by Cunningham in order to make the exchange of ideas between programmers easier. The concept was based on the ideas developed in HyperCard stacks that Cunningham built in the late 1980s. On March 25, 1995, he installed the software on his company’s (Cunningham & Cunningham) website, c2.com. Cunningham came up with the name WikiWikiWeb because he remembered a Honolulu International Airport counter employee who told him to take the Wiki Wiki Shuttle, a shuttle bus line that runs between the airport’s terminals. “Wiki Wiki” is a reduplication of “wiki”, a Hawaiian language word for Quick. Cunningham’s idea was to make WikiWikiWeb’s pages quickly editable by its users, so he initially thought about calling it “QuickWeb”, but later changed his mind and dubbed it “WikiWikiWeb”.

为什么要使用Wiki,请参考Zoom QuietWiki导览+从入门到精通MoinMoin,感谢大妈的精彩分享,我就不重复造轮子了。

团队wiki

Wiki天生带着协同的基因,在互联网世界纵横二十余年,优秀的项目数不胜数,几乎所有的优秀开源项目都会有自带的官方文档库,相当一部分的官方文档都是利用不同版本的Wiki搭建而成。
那么企业应用如何呢?来看看大妈提供的金山团队Wiki截图。团队Wiki带有协同属性,团队内部的信息流动和知识共享也符合Wiki的运作基因。而Wiki本身也是自带权限管理的,衍生出的各种Wiki引擎大部分均符合这样的规则。如果使用得当,wiki会是相当不错的协同知识沉淀工具。
我也在尝试将Wiki引入工作团队中,进行知识沉淀与知识共享,旨在打破信息差,降低团队中和团队间的沟通成本。和传统的SVN文档存储管理方式比起来,Wiki有着天生的优势:

  • 全文搜索:请脑补通过一层又一层又一层又一层的文件夹结构去找文档,通过文档名称猜测内容,点开后发现不是自己想要的内容时的崩溃感。
  • WYSIWYG(Waht You See Is What You Get)所见即所得:SVN的内容编辑需要通用的格式,目前流行的是Word、PDF等。意味着要打开文档编辑,保存,上传。如果遇到了冲突还需要解决冲突。对于一个复杂的文档处理起来比较简单,如果仅仅是为了改动一下格式或者几个文字呢?而且SVN的文档版本调用起来也并不是那么的方便。Wiki全部解决,网页端编辑,大大降低了编辑成本,全面的版本管理,任何一次提交即保存版本,方便的版本比对工具,可以轻松的知道谁在什么时间修改了什么内容。
  • 丰富的权限管理机制:几乎所有定位团队使用的Wiki都是支持权限管理的,粒度也都可粗可细。读写权限分离,不再细说,好处谁用谁知道。

Wiki的定位和使用姿势

当团队Wiki搭建起来之后,我有一些恍惚,突然有了好用的工具,要如何定位呢?是把所有的东西都放上去,做一个走马观花的大观园,还是仅进行高质量的内容编辑,成为团队内部的“维基百科”?wiki不是任何人都可以用的!Zoom Quiet的文章坚定了我的想法:工具虽好,定位更重要。

  • 大时间周期可复用
  • 大时间周期可复用
  • 大时间周期可复用

重要的事情说三遍,一个持续十多年的开源项目,有大量的人员更迭,如何才能保证源源不断的新人到来时知道如何开始,需要优质的内容进行自我探索。切换到公司团队,也需要优质的项目说明内容快速补充过去N年的背景知识,快速的补充“团队记忆”和“团队经验”。所以Wiki的定位就必须要内容优质。

站到团队个人工作的生命周期中,如何能提高效率,除了团队Wiki外,还可以利用团队的协同Wiki进行内容的了解和沉淀。这一部分的内容可以不要求高质量,以高可用为主。相对于前一个Wiki的结果管理,这一个Wiki更注重团队的“过程管理”每一次的团队培训、主题讨论的过程内容在这里进行,内容的撰写更偏向于个人化。

试想一下,一个超过150人的团队,包含15个左右的子团队,每一个团队都有自己的SVN文件夹,加入了不同程度的文件夹结构。一旦人员更迭,对于没有任何指导的新人,这就是一场“灾难”,完全不知道从哪里下手,即使硬着头皮找到突破点,一篇文档一篇文档的看,效率也是极低的。
如果完全切换为Wiki呢,通过氛围引导,管理要求,各个团队建立起对其他团队发布的Wiki内容,团队间的知识传递不再成为障碍。在组织沟通之前,先查找相关内容,进行基本的背景知识了解,再进行沟通协同,沉淀的内容继续充实到Wiki中。
而团队内部的学习培训、主题讨论,建立在另一套Wiki里,向其他团队开放查看、留言讨论的权限。可以保证第一套Wiki的全文搜索效率和内容的质量。第二套Wiki对于新人的氛围引导有更好的指导意义。

基于Moinmoin的个人wiki

市面上有太多的知识管理类软件,但是对我来说,Moinmoin秒杀一切。

  • 简易Slide制作:任何一个结构清晰的页面,都可以选择幻灯片模式,一秒钟形成幻灯片进行内容讲解。
  • 页面即标签:按照驼峰命名法,一秒钟生成页面或者链接,页面英文名称可以当作标签使用。
  • 全文搜索:全文搜索、页面搜索,各种花式搜索方法。
  • 网状结构:页面与页面之间,无处不在的链接,形成了Wiki应该有的样子:网状结构。
  • 极强的扩展性:是的,刚才说到的只是moinmoin的冰山一角,各种宏命令、各种插件、各种有趣的彩蛋符号无法一一说明,也不需要一一说明,因为本地安装后自带的help文档囊括一切。

本地版本安装配置

本地版本的安装极其简单,按照文档说明操作即可。MAC下安装简单总结如下:

  • 下载文件并解压缩到指定目录,进入文件夹找到wikiserver.py文件
  • 确保本地安装了Python2
  • 终端运行 ‘python wikiserver.py’
  • 浏览器打开 http://localhost:8080/
  • http://localhost:8080/LanguageSetup进行初始化配置
    • install help and system page packages,点击进去安装语言文件,如果英文不好可以直接安装中文的,不过建议安装英文的,有一些类似Wikicource的内容只有英文版本。
    • 设置首页
    • 关闭终端,再次运行 ‘python wikiserver.py’

网络版本还是本地版本

选择桌面版本还是发布到网络版本使用,关键还是在于定位。如果仅仅是自己用着玩,做个人知识沉淀,桌面版本足够用,不用担心权限的设置,搜索引擎搜不到你的电脑,也不用考虑是否有网络环境。缺点也显而易见,不能像现在火爆的云笔记软件做到随时随地的记录收集,只能基于自己的电脑,(做好备份很重要)。

如果想有更多的用途,才需要发布到网络。这样更方便进行真正的知识共享与沉淀。

  • 有了网络版本可以随时随地进行操作。
  • 注意设置权限,不该给别人看的个人部分要控制好。
  • 做好用户管理,是否开放给团队,或者其他人使用。
  • 做好页面的组织、使用要求。

基于以上,可以考虑部分内容的开放,邀请用户共同维护。

以前一直以为只有写出文章才是输出倒逼输入的正确知识沉淀姿势,所以执意用博客进行沉淀,现在看来并不全是这样。对用户有价值的材料输出都可以成为知识共享型的沉淀方法,例如大妈的许多分享录音和Slide材料。
博客适合用文章的方式进行输出,通过时间“流”的形式,个性化的展示自我。而Wiki恰恰相反,实用性内容的积累,结构化展示,wiki这种“容器”的扩展性更强。比如自己一直在积累的”北京生存指南“,时间线的展示并不重要,但是结构化的内容,及时更新的内容,社会化方式的协同就会更加合适。再比如“装修”的内容,基于个人经验的文章很适合输出,但是用Wiki的方式,拉上若干好友,形成少数人的知识开源共享,Wiki更加合适,相对于论坛更轻,也更注重内容的积累。这时候,线上版本就是不二的选择。

理性对待

Wiki这么好,老板,给我来二斤。Wiki不是万金油,也不是啥都能做的。推荐工具,最怕的是夸的天花乱坠,吃瓜群众不明真相,试用之后基于个人的知识背景、用户体验,开始黑推荐者。所以,这一段是“政治正确的免责申明“。
Wiki使用需要一定的技术基础和学习成本,最起码需要能够在终端运行 ‘python wikiserver.py’的能力,搭建了Wiki要能给予Wiki的语法规则进行内容的编辑。不然,请忽略这篇文章。
Wiki不是万能的,和专业的“时间管理”工具比起来,这就不适合去做你的任务安排。但是由于太过庞杂的任务内容和我的偏执的知识管理习惯,我还是用Moinmoin做了这件事情,重点依然落在moinmoin擅长的内容沉淀上,我可以接受不端编辑源文件的复杂度。诸位看官,慎用。

正确的探索姿势

Wiki的探索过程大同小异,以Moinmoin举例。

三大法宝

  • 庞大的help文档:正确安装后,你就获得了98%的重要文档,尽情的查阅了解吧。
  • 官方文档:在本地help文档没有找到的内容,可以尝试找到官方文档的页面了解,这部分内容并不多。
  • 优秀案例:官方文档的Other sites using the MoinMoin wiki engine部分提供了大量的优质Wiki实例,去看看吧,你会目瞪口呆的。Ubuntu、Apache、Python Wiki全部都是基于Moinmoin实现的!!!国内的推荐啄木鸟社群的内容页面。

进阶之路

进阶之路的心法在此:

  • 基于需求了解功能:wiki是拿来用的,顺便了解和精通一下工具,切勿本末倒置。
  • 实践,踩坑,循环:不多说了,有了需求,想办法实践,发现大坑,尽量填补,总结沉淀,再次踏上踩坑之路,循环N+1轮,恭喜你,升仙啦。
  • 学会借鉴:刚才提到的优秀案例都是基于Moinmoin进行的配置改造,在你喜欢的页面链接加上’?action=raw’就可以直接看源码,都脱光了给你看,有什么学不会的?

我经历过的探索过程是这样的:启了服务,啥也不知道的就开始“横冲直撞”的用起来,没有找到本地文档(因为没安装语言包,囧),就看官方文档,以为研究的七七八八了,才发现语言包没装,安装了语言包好想去哭一会,之前的问题全部都有答案。
用着用着发现自己的编辑风格好丑啊,“别人家的孩子”都是咋做的?’?action=raw’大法开启,夷,acl是什么,试一下,糟糕,页面无法编辑了,一顿搜索了解,顺便把权限部分搞懂了。原来还有宏,还可以’’’’<>’’’’页面,还可以’<>’,还可以……
我现在到了研究插件(Xapian插件、graphviz插件),尝试更多功能优化,部署到外网可用的阶段了。后面还会遇到了解文件结构,尝试数据分离,改写插件等等各个阶段。
祝大家在自己的进阶之路上越走越顺。

wiki引擎的选择

Moinmoin不是唯一选择,List of wiki software有更多的选择。还有Wiki对比网站进行对比。

  • 数据库还是文件进行内容的组合是重要的差异,moinmoin是文件管理。
  • 权限管理策略,会影响到后续的运维成本的高低。
  • 语法的通用性,大部分的Wiki都遵从一套类似的语法规则。
  • 插件,是否是长时间,热门的服务,会影响到可使用的插件多少。
  • 案例,有哪些著名的案例。
  • 是否开源。
    以上仅仅是一个罗列,具体内容还需要根据自己的情况进行选择。

最后,祝大家玩的开心。

声明: 本文转载需标明出处,禁止用于商业目的。

ChangeLog

170403 新建