关于程序设计过程开发文档求教!
最近去一个公司面试,面试的人突然问我,你原来做的程序有没有开发过程文档?
结果我直接就是傻到哪里了,当时我们做的程序哪里有哪个东西啊,一般都是一个人直接写下来的,最多就有个开发日志,比如几月几日,写的什么东西,修改的什么错误!
请教做过大项目的老大,所谓的开发过程文档是什么? 是不是 用户需求表、 产品说明书、 算法结构介绍?
为什么面试的人说,你要走了,你们公司的软件不就没有人接了么?
难道我还要写一个,“算法是怎么回事,模块是怎么回事,的介绍文档”。代码里面不是都已经有注释了么?
这一块用专业一点的术语叫什么?
------解决方案--------------------
大多数优秀的开源软件,也只是有一个逻辑设计文档,以及少量的“探针测试”(用来演示底层技术),然后就在开发过程中使用问题管理系统、版本管理系统、以及论坛等方式来协调开发过程。这种开发不是以文档为核心的,仅有必要的文档。可是这些项目它产生的是非常强的代码,因为其开发过程往往更强。
几乎所有优秀开源项目的开发过程,都是以自动化测试为核心的,而不是以文档为核心的。
其实如果“站着说话不腰疼”,那么我们就可以以文档为主来进行开发了。那么你可以下载一个“软件开发 国标”来看看,然后照着其“规范”亦步亦趋地去填写各种表格。实际上这些所有空洞的文档,大部分都是为了养那些那些不编程的人,而一旦编程开始,这些人就不管了。这种以文档为核心的开发者,一个最显著的特点就是前边的人不为后边的人负责,一旦出了问题就只能推卸给后边的开发人员,即时通过6、7层文档细化而得到了“怪胎”的设计那么也是开发人员承担实现怪胎,因此它不可能敏捷、不可能得到强的代码。只有IBM之类的大型官僚企业可以在企业文化内消化这类开发方式,小企业顶多也就是东施效颦而根本不可能真正采用。