一个差劲的常见问题列表 (Frequently Asked Questions, FAQ) 总是充斥着 作者希望听到的问题, 而不是人们真正想问的问题. 读者可能遇到过下面这种类型 的问题:
Q: 如何使用 Glorbosoft XYZ 才能最大程度地提高团队效率?
A: 很多客户想知道如何利用我们的革命性办公套件最大程度地提高 效率, 答案非常简单, 首先, 点击菜单项 File, 滚动到 Increase Productivity, 然后 …
这种问题完全不符合 FAQ 的精神. 没人会打电话给技术支持中心询问 “ 如何提高生产效率”, 相反, 人们经常问一些非常具体的问题, 例如 “怎样做才能让日历系统提前两天—而不是一天—提醒相关用户 ”, 但是编撰 FAQ 比发现真正的问题要容易得多. 构建一张真实的 FAQ 列 表需要持之以恒的辛勤工作: 在软件的整个生命周期, 需要跟踪每一个收到的 问题, 监控反馈信息, 所有的问题要整理成一个统一的, 可查询的整体, 并且能 够真实地反映出用户的感受. 这个过程非常需要耐心, 如自然学家一样严谨的态度, 没有浮华的假设, 没有虚幻的断言—最重要的是要有开放的视野和精确的记录.
我喜欢这本书的原因是它正是按照这种过程写出来的. 本书是作者和用户直接 交互的结果, 而这一切是源于 Ben Collins-Sussman 对于 Subversion 邮件列表 中常见问题的研究, 他发现人们总是在邮件列表中询问同样的基本问题: 使用 Subversion 的标准流程是什么? 分支 (branch) 与标签 (tag) 的工作方式同其他 版本控制系统一样吗? 我怎么才能知道某处修改是谁做的?
日复一日看到相同问题的烦闷, 促使 Ben 在 2002 年的夏天努力了一个月, 写了一本 The Subversion Handbook, 这是一本 60 页 厚的手册, 涵盖了 Subversion 所有的基础使用知识. 手册没有说明定稿的最终时间, 但它随着 Subversion 的每个版本一起发布, 帮助过很多用户跨过学习之初的艰难. 当 O'Reilly 决定出版一本详尽的 Subversion 图书时, 扩充手册是最快的捷径.
新书的三位作者面临着一个不寻常的机会, 从职责上讲, 他们的任务是以目录 和草稿为基础, 自上而下地写出一部著作. 但事实上, 他们的灵感来自一些非常具体 的内容, 稳定却难以组织—Subversion 被数以千计的早期用户使用, 他们提供 了大量的反馈, 这些反馈不仅仅针对 Subversion, 还包括它的文档.
在本书的写作过程中, Ben, Mike 和 Brian 像鬼魂一样游荡在 Subversion 的邮件列表和聊天室里, 仔细研究用户遇到的实际问题, 监控反馈信息也是他 们在 CollabNet 的工作内容之一, 这给他们撰写 Subversion 文档提供了巨大的便 利. 本书建立在丰富的使用经验上, 而不是流水般脆弱的想像, 它结合了用户手册 和 FAQ 的优点, 初次阅读时, 这种二元性的优势可能并不明显. 从表面上看, 本书只是从头到尾地描述了软件的细节, 书中的内容包括一章概述, 一章不可或缺 的快速指南, 一章关于管理配置, 一些高级主题, 当然还包括命令参考手册和故障 排除指南. 一段时间后, 当你再次翻开本书查找一些特定问题的答案时, 这种二 元性才得以显现: 书中生动的细节一定是来自不可预测的实际用例的提炼, 大多数 内容是源于用户的需求和视角.
当然, 没人可以承诺本书可以回答你的所有问题. 尽管有时候一些前人提问 的惊人一致性让你感觉是心灵感应, 你仍有可能在社区的知识库里摔跤, 空手而 归. 如果有这种情况发生, 最好的办法是把问题发送到 users@subversion.apache.org, 作者还在那里关注着社区, 不 仅仅是本书的三位作者, 还包括许多曾经做出修正与提供原始材料的人. 从社区 的角度看, 帮你解决问题也是为了改进本书和 Subversion. 他们渴望你的信息, 不仅仅可以帮助你, 也可以帮助他们. 与 Subversion 这样活跃的自由软件项目 在一起, 你不会孤军奋战.
希望本书能成为你的好伙伴.