我们在编写
软件开发文档的时候,有些时候是要为相关
开发方编写文档。是不同于为己方编写开发文档的要求。完备清晰的文档是成功开发的关键。几年前,我参与了一个通信类项目的开发,芯片的选型决定着整个研发方案甚至开发人员的确定。除了以FPGA为主的开发方案外,基于DSP为主的方案有两个,使用TI公司的KEYSTONE架构的DSP,或另一家公司相应功能的芯片。在方案论证过程中我们果断地选择了前者,其中主要的考虑就是文档的完备性。在这方面,TI 是一家值得尊敬的公司,他们的文档细致且完备,对于一个小公司来说,选择这种新的、国内几乎没有多少用户的开发方案,又不能指望厂家直接提供帮助的情况下,依靠的只能是它们的文档。
文档是与伙伴交流的界面。敏捷开发提倡有效地当面沟通,但不幸的是我们的交流伙伴经常是跨部门(甚至不在一个地区),即使处于一个部门,
设计与测试也常常由不同人来承担。一份好的文档是绝对必要的,否则你就要和伙伴坐在一起工作了。特别是类似第三方测试的情况(对方往往跨越距离甚至处于另一个城市),对方是依据你的设计或需求规格说明来开展测试的,如果提供的文档不完整,或者文实不符, 可想而知,测试也不会顺利。当一个个电话打来向你寻求帮助,而你手上还有很多其他工作,分身乏术的时候,一定会为当时没有好好写文档而后悔不及。
软件开发是一个持续的活动,生命周期较长,运行维护、修订、升级是一个长期的过程。如果没有一些文档的辅助会给新加入的成员带来困难。从这个角度上看,良好的文档可以使工作交接更加顺利,也使得原来开发者可以更加顺利地开始新的项目或其他工作。我们在工作中也经常遇到过这样的情况,急于完成功能,追赶进度,放弃文档和过程,一旦遇到变故,新接手的工程师对代码不理解,又得不到帮助(根本没有留下文档),只能推迟研制进度,严重时可能造成项目失败,和之前“急行军”节省的时间相比,得不偿失。造成这种项目信息”失传“的主要原因就是对文档和过程的忽视。