小型软件项目中的规范管理
2009-9-13 9:40:00
(2)没有完整的开发文档,无意之中增大项目风险
一个完整的软件开发项目应包括有相当多的相关文档:例如项目开发计划、软件需求说明书、概要设计说明书、详细设计说明书、开发进度月报、测试计划和开发总结报告等。而在实际中,许多小型软件项目只有简单的流水帐式的开发日志。最常见的借口往往是以文档滞后来解释文档的不健全,这似乎没有什么不妥,而且好象还理直气壮的。但如果将软件项目叫做"工程"的话,再将其与建筑工程相比较,那我们也就可以说:大楼有了,图纸滞后,这是很可笑的。还有许多开发人员认为软件设计已经在其脑子里完成了,在其意识里工作就只是一堆需要敲出来的程序,既然能直接敲得出来,自然没必要再做写文档的重复工作。
这样做的结果使到设计思路和实现细节在项目团队内的交流很困难,开发过程会由于需要大量尝试性、重复性工作而变得缓慢,而且会出现许多意想不到的大大小小的问题,狼烟四起之时最重要的工作就变成了"救火"。所以,在小型软件项目里会"救火"的技术人员会成为大家推崇和依赖的英雄。但这种"救火"式的行为最终结果却是项目延期成了普遍现象,产品质量也得不到保证。另外,如果这个英雄半途离开,那没有任何文档支持的中间结果对其它人来说基本上就是"一堆垃圾"而已,项目被迫中断就成了家常便饭。
(3)人员没有技术分层,职责不清分工不明
许多小型软件开发项目一直采用个人主义式的开发方式,决定了规范化开发方式的不被认可。对规范化管理的淡漠,抑制了团队工作效率的提高,甚至扼杀了其生命。所以,小型软件项目往往要求主要的项目人员从各个方面都得是非常出色的,不仅要全面地掌握系统架构知识、具有业务分析和系统设计能力,而且还得是多种流行开发工具的专家、数据库的专家、网络配置的专家等,但这样的全才和通才往往是可遇不可求的。
因此,小型软件项目更需要做技术分层,例如系统分析员、需求分析师、程序员、测试员等。在项目开发中相应的角色必须要有相应的专业人员来担当,当然可依据项目规模大小和现有人员来合理配置。这里强调技术结构分层和技术人员划分,更多的是技术责任的明细,而非具体个人的技术定位,将技术任务和相应的责任划分到具体的岗位、将岗位落实到具体的人,这与具体技术人员身兼数职是不矛盾的。
而我们经常看到的是在许多小型软件开发过程中,人员职责不清、分工不明的现象非常严重。有的甚至从调研到分析、设计,到开发、调试,再到测试一气呵成。先不说工作量有多大,仅从项目的风险来说就是非常可怕的,更不用说最大限度发挥开发人员的长处了。