Single-sourcing文档开发的误区
名词解释:Single-sourcing,比较难找到短的中文对等词,暂且翻译为“同源多格式”文档发布方法,是指能让你只维护同一堆文档内容即可实现向多种格式输出的文档编辑和开发方法。
Michael Hiatt的博客文章The Myth of Single-Source Authoring对90年代开始兴起的、基于XML规范的single-sourcing(同源多格式)文档开发模式提出了挑战。他拿“社会化”网络应用(Web2.0模式)、基于“云”端的内容聚合器(content mashup)等新兴的知识产生模式来支持他的挑战。
采用XML规范实现编写文档源的工具(例如:DocBook XML、DITA等)来实现的同源多格式文档开发模式究竟是否已过时?我看未必,要看你是否把它用在了正确的文档开发任务。
每种工具都有设计的初衷和想解决的问题。Michael对XML工具公认的一些优势和价值提出了挑战,这里我只对那些我本人有实际经验的观点发表看法:
1. 发布为多种格式
Michael认为:现代很多流行的文档编辑工具都可以做到编辑一次,发布为多种格式,对高度结构化、可发布为HTML、PDF等多种格式的文档内容的需求在90年代就已经消亡。
我的看法:Michael所提的均为事实,但实际生产环境中,采用XML作为单一源所需要的不仅仅是多种格式输出,更重要的是:XML格式(和纯文本的源代码一样)可以同时放到版本控制系统中管理(例如CVS, Subversion, Git, Mercurial, Perforce等),实现多人协同写作,实现所谓的“敏捷开发”。带头的总编辑负责内容的规、模板的制作和文档与产品发布的持续集成。总之,有了XML源的文档内容,你可以像对待你的软件源代码一样对待文档源。
2. 内容的重用
Michael认为:文本写作内容重用很难和代码的重用相提并论:代码是给计算机/机器去解读的而且根据十分严密的语法和技巧(例如面向对象技巧)来实现代码重用,但文本内容的重用建立在类似的基础是错的——因为文本内容是依赖人脑去解读,从作者的脑袋流向读者的脑袋,而人脑解读信息是十分直观的而且很容易误读。
我的看法:的确,无论你安排的文档最小主题多么合理,你很难100%复制到新的版本去使用。但这个过程本身比重新写要省事,“内容重用”的编辑技巧的最大价值是为了节省开发新版本的时间,这点特性对每天要面对海量文本编辑工作的技术作者而言尤其重要。
3. 信任其他人(其它作者)
Michael对这个问题的质疑的基础是:一个作者很少会完全重用其他作者写过的主题/内容。因为每一个写作任务的上下文都是不可能完全相同的。重用和完全信任其他作者的方法一般是局限在机构内部合作一起写一本书,但是要在整个企业范围内实现文档内容重用就很少有成功的。
我的看法:同意。
4. 公司内部(闭门)写作
Michael认为用户对产品的信息来源不仅仅是公司内部发布的官方文档,还包括诸多社会化网络应用:博客、聚合器、社区网站等。公司内部雇佣的作者需要和这些外部的信息和知识来源竞争,少数作者的智能很难和来源于世界各地的博客写手(领域专家)等相比的。
我的看法:“闭门写作”和依赖社会化应用软件(例如开放的Wiki等)协同编写文档是相符相成的,不同的方式适用于产品开发、应用的不同阶段,它们并不矛盾也不存在“竞争”关系。“闭门写作”能确保产品文档的基本质量、完整性,且能让开发经理掌控其进度并实现按时与产品一起交付。依赖社会化网络来获得各方面的产品知识的反馈和输入(input)则是可以贯穿产品文档的整个生命周期的做法。只要企业认为有必要而且能有资源投入,随时可以实现社会化网络的产品知识形成和文档内部开发之间的融合。
结束语:
任何技术/产品与新的可替代技术/产品之间的关系不完全是竞争的关系。厂家和消费者真正能获益的方法并不是去选新的而放弃旧的,而是如何去根据企业/用户的实际情况自由组合/融合这些新的和旧的技术/产品/方法,以争取最大的效益。

