新年已过几天,自己掐指一算,眨眼间工作快六载。时间过得真快,该静下心来对自己进行总结总结,反省反省了。

   作为程序员中的一员,鄙人对新技术、新方法有着狂热的激情,每天都希望自己多看一些资料和多编一些程序,有时自个颇以陶醉于比特世界而自鸣得意。但我们的生活毕竟不是单一的,我们毕竟要在团队中生活,要在“死亡之旅”项目中挣扎前行,在这之中对我造成折磨的一件事,那就是写文档。

   写文档,谁都会写,这句话没错。就像每个人都觉得自己可以当皇帝一样,但不见得就可以做个明君。

   每当项目中需要什么文档时,鄙人就三下五除二把它“拿下”了,自我感觉自己已经把该写的东西都写全了。但很多时候都是事与愿违,每当进行文档评审或别人参看文档时都会提很多意见,比如:
   1)文档没有体系结构
   2)前后不呼应
   3)没有层次
   4)...

   最严重的评论是“不知所云”,我拷,我可是花了整整一天时间,!@#$%^&。

   举个例子,有次领导让我写篇调查文档,针对xxx厂中的信息系统中存在的一些问题进行分析并提出改造方案。接到任务后,没经过仔细思考,就开始埋头写起:
   第一段列出了目前存在的所有信息系统,
      系统A
      系统B
      系统C
      系统D
      系统...
      系统Z

   第二段列出了它们存在的问题,
      问题a
      问题b
      问题c
      问题...
      问题z

   第三段进行了问题分析
   第四段给出了解决对策,
      对策1
      对策2
      对策3
      ...
      对策n

   在会上领导进行了委婉地批评,说文档就像流水账一样,不成体系,没有归纳,没有总结。其中的系统、问题和解决对策就像一盘散沙,给读者的阅读带来极大的困难。经过“批评指正”,我意识到一篇文档要写出结构、写出思路、写出层次,读者才会看下去,不然就像我原来写的文章那样,文档中一大堆信息,谁容易明白,可能时间长了自己也不明白。

   经过文档“重构”,我对问题进行了归纳和总结,比如:
   
   第一段中的信息系统,我根据功能级别把它分类成管理决策层(L4),生产管理层(L3),过程控制(L2),电器仪表层(L1),又根据建设时间把它分成了已建系统(又分成未改造和正申请改造)和在建系统。通过把信息分析,进行归纳之后,信息的理解和消化将变得轻松。

   对问题我也是依葫芦画瓢,把问题归纳成系统问题、兼容性、扩展性、管理方便性进行了说明。对解决方案进行了从重要性、操作性和阶段性进行了说明。

   经过“重构”,文档得到了领导的认可。自己在文档的编写方法有了一次小飞跃。

   写文档不难,写好文档不易。就像我们程序员的程序一样,一定要有好的体系结构,要善于利用设计模式以及惯用法等。对比于文档,我个人觉得,

      文档                                                      代码

   金字塔原理               <——>              体系结构

   归类、排比句           <——>              惯用法 

   许多程序设计中的思想都可以用于文档编写,比如:

   1)用例驱动,在文档编写中,我们可以关心文档的用户是谁,他们对这篇文档都有什么期望,...。
     
   2)以体系结构为中心,在文档编写中我们可以按照“金字塔原理”的思想为中心展开我们的编写工作。

   3)迭代和增量为过程,在文档编写中,我们可以增量进行编写工作,然后休息一下,把自己换成文档用户的角色通读一下文档,把不满之处记于纸上,然后在把修改意见放入下一轮迭代编写中。

   最后,以领导常说的一句话共勉,“凡事要用心”。不过我个人要再添一句,“到时需动脑”,:-)

   
(注:《金字塔原理》是一本关于写作的书,非常不错,值得拥有)