针对项目的审计要求
首先是介绍一下什么是审计,审计是对资料作出证据搜集及分析,以评估企业财务状况,然后就资料及一般公认准则之间的相关程度作出结论及报告。进行审计的人员必需有独立性及具相关专业知识。换句白话讲,对软件项目的审计就是对在软件开发过程中,业主方的钱都用到哪里去了,承建单位都做了哪些具体的工作,工作包括过程性的和结果性的。
其实我也是刚刚接触软件项目的审计,以前一直以为项目做好了,源代码的版本管理好,投标文件、合同文件、需求、设计文档等保管好,这个项目就差不多了。但这些都是结果,没有包含过程。过程中会产生类似于每周会议纪要、需求说明书是如何通过一份份一个部门一个部门的调研文档形成的,设计文件是如何通过一次次评审、一次次修改和调整的,在开发或者试运行过程中,做了哪些调整、反馈等,对于审计来讲,这些过程才是最重要的。而我们更多的只是在意结果,忽视了过程。
拿一个项目举例,项目是2004年的,到今天2010年了,还在维护,其中项目经理和项目负责人也不知道换了多少茬了,一直也没在意结果过程什么的,保证系统的运行稳定是永远放到第一重要的任务。就在上一个负责人离开,他的所有纸制文件,就是一些业主提出来的问题修改和会议纪要等等,也被当成废纸卖给那个精神矍铄又有点扣门的老大爷了。但就是这样的一个系统,现在要审计了,怎么办,纸,卖掉了,肯定找不回来了,这就代表过程资料没有了。结果资料呢?项目几易其主,需求呀,设计早就不知道跑哪去了,说不定就算翻出来,和现在的系统一对比,都会吓一跳,会去想这是该系统的需求和设计文档吗?一定会有照着葫芦画瓢,却画成了帆船的感觉,特惊讶。
不过天无绝人之路,好在公司在后来做了CMMI3之后,又做了一个项目管理系统,此项目管理系统目标就是为解决中小企业在发展过程中管理困难的问题。项目管理系统在前期的时候大家虽然在用,但并不是很重视,现在越发的感觉它存在的必要性了。就靠着公司员工每天记工作日志,日志虽谈不上详细,但这毕竟是过程,一个项目从无到有到试运行到验收,整个过程都有的。每个日志上都有任务的开始时间和结束时间,以及完成该任务花费的工作时间等信息,这样的话,只要将这些信息导出来,不可谓不全面。
对于项目管理系统,我们的认识也逐渐在改变,基本上公司已经没有人把它当成一个浪费时间的累赘,而是用它来记录和展现一些过程。项目管理系统不仅仅有记日志的功能,更重要的是对于每个项目的计划安排、人力安排等进行记录和统计,对于任务安排,也要求任务接收人在与任务安排人之间沟通协调后要进行承诺,以保证在任务接收人是可计划可管理的,只有对任务进行了承诺,又在承诺的时间内完成,那么该项目在进行计划安排时,就不会出现在进度控制上有大的纰漏,对于例外情况,也做相应的实施细则,以便从中发现问题和对项目进行进度控制以及完善项目管理系统等。
一个项目做完了,不能只留那些结果性的资料,其实过程性的资料对于项目也是同等重要的。在人员离职交接的时候,有些纸制的文件,该保留的一定要保留,该归档封存的就存到档案室中去,这些才是真正的财富。就是开源软件一样,开源的只是代码,真正要去了解开源软件,还要是靠过程性资料和结果性的资料的,而不是下载个几百万行的代码,闷个头在那边刻苦研究,是不是这回事儿?