渐进式公开:以简约换极致

技术文档工程师如何为具有丰富经验和产品知识的用户提供合适数量的信息?渐进式公开是一种解决方案,它可以让用户决定该提供多少信息。

只告诉用户他们需要知道的信息

正如心理学家兼计算机科学家 John M. Carroll 在他的开创性著作《The Nurnberg Funnel》(纽伦堡漏斗)(麻省理工学院出版社 1990 年出版)中所说,从根本上讲,在人的大脑中灌输大量信息可以提高他们的工作能力的想法是错误的。人只有在有目标后才会真正地学习知识。阅读与实际目标无关的信息无异于睡觉时将书放在枕头底下。

Carroll 在他的著作中阐述了创作技术文档时的简约主义原则。其实最终得出了这样一个简单的结论:技术信息用户的目标绝对不是阅读手册或了解产品的精彩之处。其目标是利用产品完成手头的任务。正因如此,客户几乎从未抱怨门锁没有使用手册(即便了解锁的工作原理确实是一件非常有趣的事情)。只要我知道如何用钥匙打开锁,我绝对不会想到拿起手册阅读所有关于制锁工艺的细枝末节。

技术信息极简主义的主要原则就是不要为使用者提供他们不需要的信息,以免浪费用户的时间。当用户查阅技术信息时,他们通常需要迅速地解决某个问题。在拿起手册或打开联机帮助前,他们通常自己已经想了很多解决办法了。这已经占去了大量宝贵的时间,没有必要再阅读其他与解决问题无关的信息。

尽管这种道理显而易见,但做起来就不那么容易了。到底需要的最少信息量是多少呢?正确的做法是首先将信息分成概念、任务和参考主题。很明显,任务比绝大多数概念更注重行动,而参考主题提供的详细信息可能在遇到异常情况时有用。

但是,即便明确区分主题类型并且每个主题只回答用户可能产生的一个特定问题,仅为客户提供他们需要的信息也不是一件容易的事情。用户达到自己的目标需要的信息量很大程度上取决于用户已经掌握的信息量。而且由于您的产品接触的最终用户情况不一,这可能是一个没法回答的问题。每一位用户可能有不同的信息需求,即便他们需要执行相同的任务。

了解使用者的情况

多年以来,公司采取了各种办法来提高其技术文档与其客户之间的匹配度。任务和用户分析成为技术文档创作者或信息架构师工作的一部分。从用户分析可以看出,用户通常可分为许多不同的类别,每个类别都有各自的背景、受教育程度和对于相似产品和技术的经验多少。如果要为这些不同类别的用户(例如系统管理员、服务工程师和最终用户或操作员)开发有针对性的信息产品,个性定义会对创作者有所帮助。这些个性可以让创作者了解用户,从而调整他们的写作风格,以便他们可以为每一群特定受众提供适合的信息类型和信息量。

图 1 - 您产品的用户是谁
图像:© Rawpixel/ istockphoto.com

尽管这样做对部分产品和公司有效,但大多数公司无法承受因此所需的额外工作量和成本。即便对那些能够承受的公司而言,其效果对于绝大多数用户而言也不是最好的。即便知道某位用户是服务工程师,也不会知道他有哪些经验,需要什么额外信息来解决手头的问题。这甚至取决于用户寻求帮助的特定领域。对产品某个部分非常有经验的使用者可能对于他们以前未使用过的功能来说是新手。即便第一次使用您的产品的用户可能对于其概念非常熟悉,因为他们以前用过类似的产品。

通过增加个性化选项数量是不会解决问题的,因为这样做只会让每一位用户更难选择要查阅的文档。您是有经验的用户还是没有经验的用户?如果您认为您是文档的高级用户,但却没有找到您需要的信息怎么办(因为创作者可能认为某类个性的用户通晓所有的知识)?用户如何确定技术文档的哪一部分适合自己?

让用户来掌控

这个看似无法解决的问题其实解法很简单:让每位个体用户决定完成任务所需的信息量。对印刷媒体来说这不是个选项,但现在绝大多数的服务系统使用的媒体都允许与用户交流沟通。根据所选输出格式的不同,可以有多种选项让用户自行掌控需要的信息量。

让他们自行决定需要多少信息量。 在某种程度上,绝大多数基于 Web 的帮助已经在这样做了,它们提供相关链接或交叉引用将用户引至技术文档中其他位置的“更多信息”部分。对于用户而言,这并不是一个最佳的解决办法,因为这样的链接会让他们离开他们当前正在查阅的部分。根据交叉引用和相关链接的多少、以及技术文档中的导航设计,这样的问题解决方案可能让用户完全感到无所适从而一无所获。对于用户不清楚缺少哪一部分所需的详细知识这样的非特例情况而言,尤其如此。如果文档没有这方面的设计,故障排除的任务可能会比较重。

当您从说明系统的一部分转到另一部分时,痕迹导航将无法提供帮助:痕迹导航显示文件主体的组织结构,而不是用户如何使用相关链接或交叉引用,从一部分跳转到另一部分。而且如果要在浏览器窗口中反复地按“返回”按钮(就算这样有用),也确实不是最用户友好的选项。如果帮助页面显示在框中时,例如大多数三层结构帮助窗口,这样做是没用的。

有这么多问题的存在,似乎真正的简约主义文档是一个无法在现实生活中实现的梦想。但幸运的是,如果输出媒体支持些许的 javascript 和相当基本的 CSS,则还有另一种选择。由于所有现代浏览器都提供这种支持,因此通过 Web 的帮助,这应该是一个可以轻松实现的要求。

图 2:就像著名的俄罗斯套娃那样一个套一个,渐进式公开允许逐层显示信息。
图片:© Robyn Mackenzie/ 123rf.com

这种选择被称为渐进式公开,它确实能够让每一位个体用户掌控自己的说明系统。尽管输出文件中包括所有信息,但其中部分信息在用户点击链接(或使鼠标悬停在其上方)使其显示前,一直是隐藏的。最初隐藏信息的各个部分可以嵌套,因此有了“渐进式”的说法,这和俄罗斯套娃非常相似。它与交叉引用或相关链接的最大区别在于上下文不会变化:使用者仍然留在相同页面上,因为更多信息或者直接显示在该页面上(在扩展或下拉菜单部分中),或者位于显示在其上方的一层内。再次点击相同链接(或者使鼠标从触发器上移走)会隐藏该信息,页面恢复之前状态。不需要按“返回”按钮,不会做无用功,没有上下文变化。

备注:当然,如果因跳转到明显属于另一个主题的信息而离开当前主题页面也是合理的。本文不应让您认为基于主题编制文档对用户是不好的。

让渐进式公开发挥切实的作用

但是,渐进式公开有一个缺点:创建它们显示或隐藏的链接(无论它们是文字还是图像都没有区别)和标记章节是一项非常繁琐的工作,需要准确地定义唯一标识符和匹配 javascript 函数调用参数。尽管部分创作工具提供下拉菜单或扩展文本句段的选项,并隐藏技术细节,但它们仍然需要创作者针对每个公开信息章节单独执行此操作。

只有当这部分繁琐、耗时的工作实现自动化后,渐进式公开才是可行的。关键问题是如何告知自动化流程哪些章节可以随时调用。没有清晰明确的规则,任何使该流程自动化的尝试都将会无功而返。这些规则必须基于主题的结构,而不是主题的内容。再者,在这方面还有比 DITA 任务更适合的候选者吗?毕竟这才是注重行动的用户一旦遇到问题时首先要查阅的主题类型。主题必须足够简约以避免浪费用户的时间,同时要为所有用户提供充分的信息,使他们能够解决问题并继续工作。

DITA 任务具有明确定义的结构和许多得到认可的元素,它们可以作为渐进式公开的理想候选对象。利用 XSLT(一种所谓的转换引擎)完全可以完成您的 DITA 任务,并对它在文档中识别出的任何元素应用转换规则。以下是所使用的一组规则(采用人工读取格式)(元素名称出现在尖括号内):

图 3:DITA 任务被自动转换为渐进式公开页面

就是这样。现在让转换引擎运行并施展它的魔力。在浏览器中打开生成的任务页面时,只显示极少量的信息(过程的任务标题和主要步骤),并提供多个可供使用者根据需要打开和关闭章节的图示。在每个单独的步骤中,每一位相关用户都可根据需求决定是否公开更具体的信息(信息、子步骤、错误恢复)。

当然,这只是自动实施渐进式公开的一种可能的方式。哪些规则适用于每个特定主题类型取决于为使用者提供的信息类型。对于 <concept> 主题,显示的最少内容可以是第一 <section>以内的所有信息,然后显示章节标题列表,通过它们可以随意打开和关闭其内容。

降低双方的成本

使用渐进式公开技术唯一的好理由是可以减少使用者查找工作所需信息时的操作量。这种技术可以使所有使用者始终处于相同的主题页面上,同时允许存在前期知识的个体差异,完全可以让您的信息产品变得更好,并且更加经济实用。分别针对初级、中级和高级用户提供可供选择的专用主题并非最佳选择,因为这样做不能满足所有用户级别的需求,而且完全无法满足每位个体用户的具体需求。使所有使用者处于相同页面(不会造成主题选择的混乱)并在相同页面的上下文内(不会在说明系统中四处跳转)获得所有额外的可用信息。这比用鼠标乱点好多了。

让渐进式公开在实际说明系统中发挥作用唯一的可行办法是,尽可能多的操作实现自动化。这可以减少创作者在确定要最初隐藏的章节时的成本。为使自动转换成为完全渐进式公开输出选项,可以不必对每个可公开的章节进行此项设置,而是只需创建结构合理的信息(这应该成为任何技术文档的首选目标)就可以了。创建结构化内容处理使用的 XLS 是一次性投资,可以确保带来有助于提高文档质量的巨大回报。

使用 DITA 等标准结构可以进一步降低您的成本:我会将上述处理 DITA 任务的 XSL 作为 DITA Open Toolkit 的一个免费插件提供。这意味着您只需要根据自己的风格调整 CSS 和图示即可。但是,即便您使用专有结构,需要创建您自己的 XSL,也可以找到大量的资源。

通过结构合理的内容、现代交互式媒体和 XSLT,公司就再也没有借口不使用渐进式公开,他们只需让用户决定公开的信息量。只有使用渐进式公开的说明系统才是真正简约主义的说明系统。