前言

Karl Fogel

芝加哥,2004 年 3 月 14 日。

一个差劲的常见问题列表(FAQ)总是充斥着作者渴望被问到的问题,而不是人们真正想要了解的问题。也许你曾经见过下面这样的问题:

Q:怎样使用 Glorbosoft XYZ 最大程度的提高团队生产率?

A:许多客户希望知道怎样利用我们革命性的专利办公套件最大程度的提高生产率。答案非常简单:首先,点击文件菜单,找到提高生产率条目,然后 …

类似的问题完全不符合 FAQ 的精神。没人会打电话给技术支持中心,询问怎样提高生产率?相反,人们经常询问一些非常具体的问题,像怎样让日程系统提前两天,而不是一天提醒相关用户?等等。但是想象比发现真正的问题更容易。构建一个真实的问题列表需要持之以恒的, 有组织的辛勤工作:跨越整个软件生命周期,追踪新提出的问题,监控反馈信息,所有的问题要整理成一个统一的, 可查询的整体,并且能够真实的反映所有用户的感受。这需要耐心,如自然学家一样严谨的态度,没有浮华的假设,没有虚幻的断言—相反的,需要开放的视野和精确的记录。

我很喜欢这本书,因为它正是按照这种精神建立起来的,这种精神体现在本书的每一页中。这是作者与用户直接交流的结果。而这一切是源于 Ben Collins-Sussman 对于 Subversion 邮件列表中常见问题的研究。他发现人们总是在邮件列表中重复询问一些基本问题:使用 Subversion 的标准流程是怎样的?分支与标签同其它版本控制系统的工作方式一样吗?我怎样知道某处的修改是谁做的?

日复一日看到相同问题的烦闷,促使 Ben 在 2002 年的夏天努力工作了一个月,撰写了一本 Subversion 手册,一本六十页厚的, 涵盖了所有 Subversion 使用基础知识的手册。这本手册没有说明最终定稿的时间,但它随着 Subversion 的每个版本一起发布,帮助许多用户跨过学习之初的艰难。当 O'Reilly 决定出版一本完备的 Subversion 图书的时候,一条捷径浮出水面:扩充 Subversion 手册。

新书的三位合著者因而面临着一个不寻常的机会。从职责上讲,他们的任务是从一个目录和一些草稿为基础,自上而下的写一部专著。但事实上,他们的灵感源泉则来自一些具体的内容,稳定却难以组织。Subversion 被数以千计的早期用户采用,这些用户提供了大量的反馈,不仅仅针对 Subversion,还包括业已存在的文档。

在写这本书的过程里,Ben,Mike 和 Brian 一直像鬼魂一样游荡在 Subversion 邮件列表和聊天室中,仔细的研究用户实际遇到的问题。监视这些反馈也是他们在 CollabNet 工作的一部分,这给他们撰写 Subversion 文档提供了巨大的便利。这本书建立在丰富的使用经验,而非在流沙般脆弱的想象之上,它结合了用户手册和 FAQ 的优点。初次阅读时,这种二元性的优势并不明显,按照顺序,从前到后,这本书只是简单的从头到尾描述了软件的细节。书中的内容包括一章概述,一章必不可少的快速指南,一章关于管理配置,一些高级主题,当然还包括命令参考手册和故障排除指南。而当你过一段时间之后,再次翻开本书查找一些特定问题的解决方案时,这种二元性才得以显现:这些生动的细节一定来自不可预测的实际用例的提炼,大多是源于用户的需要和视点。

Of course, no one can promise that this book will answer every question you have about Subversion. Sometimes the precision with which it anticipates your questions will seem eerily telepathic; yet occasionally, you will stumble into a hole in the community's knowledge and come away empty-handed. When this happens, the best thing you can do is email and present your problem. The authors are still there and still watching, and the authors include not just the three listed on the cover, but many others who contributed corrections and original material. From the community's point of view, solving your problem is merely a pleasant side effect of a much larger project—namely, slowly adjusting this book, and ultimately Subversion itself, to more closely match the way people actually use it. They are eager to hear from you, not only because they can help you, but because you can help them. With Subversion, as with all active free software projects, you are not alone.

让这本书将成为你的第一个伙伴。