下面作者论述了如何在公司质量管理体系的大环境下,在项目初始阶段、项目计划阶段、项目实施阶段、项目监控阶段及项目收尾阶段进行项目的制定质量计划、实施质量保证和质量控制等项目质量管理工作。
项目初始阶段
对组织级质量管理过程进行裁剪。
对于已经建立ISO9000质量管理体系、通过能力成熟度模型集成(CMMI)等质量管理过程的公司,在项目启动后需要对其进行裁剪。
通过与项目组成员进行充分的沟通,明确质量对项目的重要性以及大家如何做才能保证项目的质量,使大家对于如何实现项目的质量目标充满信心。对于项目组中部分成员认为,“流程是死的、无用的,软件的质量是靠测试保证的”等错误思想,通过多次沟通予以纠正,使大家就以下内容达成一致:
1) 项目的质量是规划、设计和构建出来的,而不是单靠测试保证的;
2) 要十分重视项目的质量成本,越在项目早期发现的错误,纠正的成本越低;
3) 项目质量目标的达成需要全体项目成员的参与,而不是个别人的事。
项目计划阶段
制定质量计划
项目的质量管理计划一般会包括以下几个方面的内容:
1) 质量政策。由项目干系人的决策部门提出的关于质量的期望及方针。
2) 质量目标。项目质量管理和项目交付成果应达到的各种指标。
3) 质量管理活动。项目重要的质量管理活动,如质量管理工作流程、质量过程控制等。
依据项目启动时公司领导对项目的期望。制定项目的质量管理计划。项目的质量标准中除了功能性指标外,最重要的就是通用性、可靠性、可维护性与可移植性等指标。比如:对于通用性、可维护性、可靠性和可移植性等指标可以通过吸取公司其他项目的经验教训、采用良好的架构设计的方法来解决。除了确定项目的质量目标外,还明确了质量责任人。比如:项目经理对项目质量负有首要的责任;小组组长对相关子系统质量负有首要责任;各开发人员对自己的模块质量负有首要责任;质量保证人员对于项目质量有监督和指导的责任等。质量绩效作为考核团队成员绩效的重要指标。
对于质量过程控制,可以参考如下内容:1.编码规范,参照《JAVA编程规范》,安排系统架构师每周进行抽查;2.测试控制流程:A.建立BUG管理系统,定义BUG处理流程(开发人员-组长-测试人员-开发人员);B.开发人员将已开发完成的并可进行测试的功能在系统中进行登记并提交至组长;C.组长登录系统中及时进行业务测试,如有问题,在每天下班前的例会中及时提出来,开发人员再利用加班时间进行调整;D.经组长测试完成的模块经系统提交到测试负责人,测试小组再仔细测试模块,如有问题则反馈给开发人员进行修改;E.测试负责人每周形成一次测试报告,并将测试报告以邮件的形式发送至客户等项目相关干系人。
项目实施阶段
实施质量保证
保证质量是质量保证的一个重要内容,但除此之外,质量保证还要对各项目干系人提供对于质量的信任和信心。
实施质量保证的方法可以归纳如下。
1) 首先执行项目的质量管理计划。
2) 采用质量保证的工具和技术。
代码配置管理,文档类交付物配置管理。对于项目交付的文档根据重要程度和预先的规划需要经过评审才允许提交进入配置管理系统。对于项目最重要的交付物(代码)的质量,项目组给予高度重视,项目组除了对重要核心模块进行代码评审以外,强调每次交付的代码都应该经过严格的单元测试和集成测试。并且强调任务“完成”的定义是需求、设计、编码、测试都完成了才算是完成了,纠正了一些开发人员认为只要编码完成了就算完成的错误思想。
通过增量交付的方式,在一些关键点(里程碑)请公司领导进行验收和确认,建立领导对项目的信心,公司领导对项目的质量也给予特别的关注,每次验收后都会对项目组强调质量的重要性。公司的质量控制部门通过系统测试对项目的成果给予把关。每次里程碑交付时,项目开发组完成集成测试,符合准入条件后,由测试组完成一轮系统测试,在项目最终交付时由测试组完成三轮系统测试,符合要求后方可通过。
项目在实施期间定期或不定期对项目的质量过程执行情况进行审计,由项目组质量保证人员主导对项目执行公司的质量过程情况进行结构性检查。例如质量审计过程中发现部分开发人员在没有完成集成测试报告的情况下就提交了代码,并且相关的小组组长也没有把好关。针对这种现象项目组采取了适当纠正和预防措施来确保质量过程的贯彻执行。
举例如下:
1、相关人员须参加业务或技术培训,具体以邮件通知为准。
2、开发人员严格按照《JAVA编程规范》进行开发,每周三晚加班时由项目项目构架师进行检查,如有发现不符合规范要求的相关人员立即进行整改;
3、“懂业务的不懂技术,懂技术的不懂业务”,在这种局面下项目风险很大,一旦开发人员没有理解业务去开发,将导致严重的返工,最终影响项目进度。为了及时了解团队成员工作中遇到的问题,约定每日下班后举行例会,每个成员都谈谈工作完成情况以及在工作中遇到的问题,对遇到的问题,大家一起讨论形成解决方案,形成会议记录;
4、开发人员完成阶段性可交付物后,相关人员严格按照《测试控制流程》进行操作,开发人员在每天上午上班时登录系统查看是否有自己需要修改的内容,如果有则先把需要修改的内容调整完后再进行当天的计划工作;
5、测试负责人每周形成一次测试报告,并将测试报告以邮件的形式发送至客户等项目相关干系人;
6、建立SVN服务器,对程序进行版本控制,每天下班后开发人员须将当天开发完的程序提交至服务器。
7、每周向客户发送项目周报,介绍本周开发情况、下周计划。
项目监控阶段
质量控制。
项目组在质量控制过程中除了加强测试以外,还特别注重软件缺陷记录的分析工作。如:根据团队成员每天的工作绩效信息,观察、分析项目实施过程的实际情况,对项目实施情况进行跟踪监测、检查,并将监测的结果与计划或标准比较,发现并分析偏差,及时采取纠正或预防措施。
项目收尾阶段
总结经验教训,丰富组织过程资产。
在项目交付时,由公司领导和相关部门领导、资深工程师组成的评审委员会,对项目的成果进行验收。项目针对评审中提到的问题就行了补救,完善相关的文档,评审后提交到项目配置管理系统。对项目执行过程中的经验教训进行总结。