摘要
2014年10月,我参加了xx省指纹自动识别系统开发项目,担任开发方项目经理。该项目作为xx省xx工程的重点工程,受到了省公安厅领导的高度重视。该系统合同金额为3000万,开发时间为一年。系统采用B/S架构,涉及软、硬件,面向省公安厅、各县市公安局以及基层派出所,集信息采集、指纹认定、指纹查询、数据上报下载和Web访问为一体。系统于2015年10月顺利通过验收,正式上线,目前系统运行正常,受到客户方有关部门的好评。对于此类面向公安系统的开发项目,其质量要求非常严格,尤其是服务器连续无故障时间要求比较高,因而在项目实施过程中,科学有效地质量管理工作就显得尤为重要。本文结合作者的实践经验,以该项目为例,讨论了软件开发项目中的质量管理工作,主要包括质量规划、质量保证和质量控制三个方面。最后针对存在不足之处,提出了今后的改进思路。
正文
随着国家xx工程的开展,对公安信息化的要求不断提高,xx省公安厅决定启动全省范围内指纹自动识别系统的建设工作。该系统要求在省厅建立能容纳500万人的指纹数据库,面向省公安厅、县市局和基层共1100个派出所。支持的信息种类包括指纹、掌纹、人像和文字信息,具备信息采集、信息对比、信息查询、数据上传下载、工作结果统计和Web访问等功能。另外该系统要求能和省内已有的旧指纹系统保持兼容。和以往同类项目相比,该项目具有中心数据库庞大、涉及干系人众多、用户水平参差不齐等特点。
该项目合同总额3000万元,其中软件费用1000万元,硬件费用1200万元,项目于2014年10月开始,要求在2015年10月前全部完工。在招标时,招标方对项目的质量要求有明确的规定,主要体现在如下两点:一是数据库服务器端应能保证连续运行1000个小时无故障;二是采集端要能够在10分钟之内完成1个人员的全部信息录入。
我公司中标之后,成立了13人的项目团队,其中由我作为项目经理,负责项目管理工作。另外团队成员还包括1名算法科学家、1名配置管理人员、1名质量控制人员和9名程序员。
二、项目质量管理过程
对于这样一个专业性强、涉及面广、实施复杂、周期较长的项目,要使项目能够顺利实施,严格有效的质量管理尤为重要。
现代质量管理理论认为,质量管理是确立质量方针以及实施质量方针的全部职能和工作内容,并对工作结果进行评价和改进的一系列工作。质量管理的基本原则是:质量出自设计和计划,而非出自检查。
结合项目质量管理的理论,在项目质量管理过程中我主要做了以下几方面工作。
1.科学的质量规划
质量规划是识别项目及其产品的质量要求和标准,并书面描述将如何达到这些要求和标准的过程。
在本项目中,除了要完成合同中既定的要求之外,还包括一个重要的质量标准,即数据库服务器端连续无故障运行时间。针对项目的情况,我采用了两种行之有效的办法:质量检查单和实验设计。
质量检查单就是测试手册,里面列出了测试时需要测量的功能清单,以及对每个功能需要做的标准流程。检查单的内容主要依据详细项目范围说明书制定。
另外,为了满足连续无故障运行时间要求,考虑到省厅中心服务器负载较大,我们决定搭建多层数据库服务器以平衡负载。一种方案是基层派出所、区县派出所、市局和省厅四层;另一种方案是基层派出所、市局和省厅三层。为了确定较优的方案,我们采用了实验设计技术,通过实验模拟,最后认为三层即可满足日常负载,达到质量要求,从而决定采用第二种方案。最后的实际运行情况也证明了这一技术的有效性。
2.合理的质量保证
质量保证是为了使项目能够达到有关质量标准而开展的一系列有计划、有组织的工作活动,它的主要目的是为了验证在项目开发过程中是否遵循了合适的过程和标准。在这一阶段,我主要采用了质量审计的方法,邀请独立的质量保证部门来对其它质量管理活动进行结构化的审查。
IT项目质量要想保证,首先要创造一个良好的环境,尤其是要得到领导的支持。为了让客户对项目充满信心,每次审计会议,我都要邀请客户方项目经理丁某和公司部分高层主管参加。另外,每次审计的结果,我也都及时发送给客户方以及公司高层等重要项目干系人。经过几次评审会议,项目组对项目按质量要求完成信心十足,客户方也积极配合我们的工作。
为了不让审计工作流于形式,以及保证发现的问题能够被及时有效地管理,我引入了ClearQuest来管理和追踪被发现的质量缺陷,以及可能的变更。每次发布新版本时,测试人员都要检查已存在的问题是否得到修改。为了集中精力在主要的问题上,我将发现的问题分成三个优先级,对具有最高优先级的问题,每次新版本都要检查是否已修复,如果该问题连续两次版本都没有得到解决,则需要召集相关人员分析原因。
3.严格的质量控制
质量控制可以确定项目成果是否正确,是否满足质量要求,同时消除产生不良结果的原因,及时纠正缺陷。有效的质量控制能够及时发现一些与质量标准的差异,从而便于及时采取措施。
为了有效地做好质量控制,我要求测试不仅仅是测试人员的事情,开发人员在提交代码前,都必须做好单元测试,填写单元测试报告。配置管理员会不定期检查单元测试报告是否齐全。另外由于项目功能点比较多,为避免遗漏,我准备了详细的质量检查单。对每个模块,我都列出了要测试的功能点及其操作流程,这样大大简化了测试人员的工作。
在项目执行过程中,平均每半个月要发布一次版本,要对每个版本都进行所有功能的测试是不现实的。为了检查项目成果与质量标准的差距,在项目一开始我就定义了四个里程碑点,每个里程碑需要达到一定的质量要求,对里程碑点发布的版本要求做完备详尽的测试。对于其它版本,则着重检查当前发布版本对上一版本的改进。
质量控制不但要发现问题,还要分析出问题产生的原因,以便采取相应的措施。在该项目中我采用了因果图来分析质量问题产生的原因。首先列出需要分析的结果,然后结合各方面专家意见列出各种可能性,再将它们分类,确定主要类别,最后再确定和主要类别相关的原因。在项目开展一段时间后,对各种引发质量问题的原因按照频率由高到低以帕累托图的形式排列,能够直观的看出当前阶段影响质量的主要原因。
三、总结
由于在项目过程中做了有效的质量管理,项目于2015年10月顺利通过验收,正式上线。目前系统运行正常,受到客户方有关部门的好评,本项目也被评为公司优质项目。
该项目使我充分认识到质量管理对项目的重要性。质量作为项目三约束的重要组成部分,有效的质量管理有助于降低成本,提高客户满意度,是一个成功项目必不可少的一环。项目质量管理方式多样,对于具体项目,应该认真分析项目的特点,寻找适合项目的管理方法。
由于项目的独特性,还是存在如下不足:一是由于项目比较复杂,在制定质量检查单时发现有些功能被遗漏了,导致在实际执行的时候,还要回头重新修改质量检查单,导致部门模块的返工。二是对项目成员的培训不够,在项目的初期,部分技术人员质量控制的意识不够强,没有做好单元测试。另外质量控制人员由于缺乏经验,有时会忽略了本该被发现的问题。针对这些问题,我邀请了外来专家对项目组人员进行了质量管理方面的培训,强化了他们的意识,最终这一问题得到了较好的解决。
各省软考办 | ||||||||||