每块砖都是合格的,每包水泥也是合格的,为啥盖出来的房子总有问题?不是地基下沉就是楼顶漏水,要不就是窗户关不上,为什么呢?因为没有完善的质量管理体系,好的原材料没用好的方法构建。
没有规矩,不成方圆。IT应用的质量也是如此。要想保证每个模块的质量稳定,就得有统一的质量管理体系和统一的方法衡量质量标准,并设立明确的达标体系,保证按照此体系编写的每一行代码的质量,并保证最终符合此体系的产品是合格的软件产品。
质量管理体系并不是空泛的概念,它涵盖三方面的内容。一是质量体系,二是第三方评估,三是项目监理。可以说,使用这三种手段都可以保证软件产品的质量。要注意的是,IT应用面非常广泛,其质量管理体系的构建虽然有一定规律可循,但也有很多个性化的需求,这就需要应用方、承建方、监理方有经验,并善于沟通和交流,从流程和体系上保证应用的质量。
某政务信息化工程建设投资额数亿元,其总体目标是要采用现代信息技术,通过信息资源、信息共享平台、重点领域业务应用系统和安全保障体系建设,实现业务管理部门的互联互通和信息共享;促进业务管理部门间的业务协同与互动,提高业务管理信息化和科学决策水平,增强政府调控、驾驭市场变化、应对突发事件、总揽全局的能力。
很难想象,对于这样一个涉及面广、建设周期长、共建部门多、建设涉及的技术面宽(包涵软件工程、网络工程、主机系统、标准化建设、信息共享和挖掘、信息安全以及机房建设等)、参建单位多,同时,还面临国家电子政务建设机制不健全、法规不完善、网络基础设施滞后等问题的工程项目,不通过监理对工程的实施进行规范管理和科学评价,是如何能做到事先预防、事中监管、事后评估,避免问题发生,使工程达到预期建设目标的。
作为该信息化工程的监理方,应当根据该信息化工程的需求,针对工程建设的特点制定详细的《监理规划》和《监理实施细则》,在规范监理制度的基础上,重点对工程的质量、进度、投资和变更进行控制,内容涉及标准体系、基础平台、安全平台、应用系统、机房等各个环节,通过细致的监理工作保证对工程的科学化、规范化管理。受篇幅所限,本文仅以针对该项目监理质量控制的几个要点为例,来阐述监理在保障信息化工程项目质量中的重要作用。
质量控制难点及应对要点
针对该项目特点和难点的分析,项目实施过程面临的质量控制难点主要出现在以下几个方面。
目标控制
即承建单位的建设结果是否满足建设单位的质量要求和业务需求。该项目由于应用功能多、覆盖面广,而且由于我国处于经济转型时期,业务管理部门的职能不断调整,各部门的业务模式和应用需求变化幅度较大,增加了需求获取、系统设计和开发的难度,给实现目标带来了很大的困难。
该目标控制难点也是该信息化工程建设的质量控制重点。它的关键点体现在监理对承建单位的需求调研方式、问卷设计、调研过程、需求分析报告等重点进行质量监督和控制;体现在对技术方案的审核与评估上,使其符合设计项目总体设计的要求,更要满足该项目应用的业务需求;体现在整个项目过程中对需求变更的控制,以避免变更范围蔓延,无法控制。
技术控制
本项目行业应用系统的应用功能多、接口关系复杂,可靠性、安全性和可维护性要求高,造成应用系统的开发难度大。
本项目进行质量控制的关键点,体现于监理在项目实施全过程中依据合同要求审查承建单位的质量保证体系建设,推动承建单位加强项目的质量管理;督促承建单位采取符合项目合同要求、项目工程标准规定的技术路线、技术要求与系统架构进行设计;按照项目工程标准和国家标准规范规定的方法进行开发、实施及验收;在项目建设的全过程中,监理有重点、有选择地评估、度量承建单位的技术成果,跟踪承建单位的质量整改情况等。
这里要注意的是,面对本项目多达两位数的承建单位,监理在对技术过程与成果进行质量控制时,要树立总集成商在技术上的权威性,充分发挥总集成商的作用,主要由总集成商对各子系统的承建单位进行技术把关,监理对整个过程进行监督、协调与控制。
但这并不意味着监理方忽略了对承建单位技术成果的评估与度量:监理在本项目的质量控制中,首先要对总集成的技术结果进行评估和度量,其次由总集成商对各承建单位进行技术把关;最后监理应当通过抽查总集成商对子承建单位进行技术把关的结果来达到对各承建单位进行质量控制的目的。
过程控制
信息化工程特别是应用软件开发,真正按进度、质量要求完成且用户(业主)满意的,只占极少数,绝大多数工程都不同程度地存在问题,不少工程验收不了,或者验收完了就弃之不用,存在大量浪费资金的现象。这种现象存在的主要原因就是软件系统建设过程的可视性差,而且在度量和检查方面难度较高。这一部分内容的监理也是信息工程监理的主要难点,它涉及到对应用软件产品设计、开发过程的监理。
应用软件开发项目质量控制的要点之一,是在软件开发全过程的关键点采用质量度量技术对项目的质量进行评估,以便有效地进行项目的质量控制。对于信息工程监理来说,没有项目的质量度量,等于没有质量标准。在项目质量度量中,我们常用的质量度量有软件可靠性度量、复杂度度量、缺陷度量、规模度量等。
制定工程标准
标准化工作极为重要,它是支撑信息化工程建设和目标实现的重要手段。满足系统建设、运行维护和管理工作的实际需要的工程建设管理标准,是项目成功建设和顺利运行的基本保障。
本项目工程建设标准的关键质量控制点,是要确保建立起联系紧密、相互协调、层次分明、构成合理、相互支持、满足需要的标准体系并贯彻实施,以支持整体工程建设和运营维护。为了实现这个目标,在质量控制监理工作中要注重以下几个方面:
1.判断本项目工程标准质量好坏的唯一准则是该标准是否能够正确地指导项目建设和运营维护,达到项目的建设目标。因此要把数据能否正确地进行共享与交换,业务处理是否正常,管理标准是否能够确实指导、约束参见单位的行为,运营维护标准的实用性等方面作为质量标准,结合使用标准的参建单位和专家评审意见,最终确认工程标准的质量是否达到合同要求。
2.由于标准化工作的承建单位是由多个单位组成的联合体,监理要由联合体各单位组成的项目组中,选择一位技术精湛、协调能力强的人员对标准编制进行总体把控,以避免标准的各部分出现结构松散、层次不清、内容粗细和深浅不同、指标项缺失、要求过高,甚至互相抵触等问题出现。
3.在技术标准的制定工作中,提出的指标项应当合理、可行,要有全局性考虑。例如,总体技术要求“表的设计要达到第三范式,又要求部分关键表应当单独进行备份”,这将造成表的设计受到很大的约束,或者造成备份出来的表难以恢复至数据库中。
4.对于工程管理的编制要脚踏实地,不能高高在上,过于宏观。对于这样一个有众多参建单位的项目,管理标准的细度应该达到如“文档编制要用Office 2003,UML工具用Rational Rose”等。编制出的工程管理标准草案应立即在一定范围内试用,以验证其可行性。要充分征求各方面的意见。
注重软件测试及度量
应用软件建设是系统建设真正的灵魂所在,承建单位的测试是开发过程中一个不可缺少的环节,它对信息系统的质量、进度都将具有重大的影响。一般来说,承建单位需要完成从单元测试、集成测试、确认测试到系统测试的全部测试工作。测试的规划、实施是贯穿在整个开发过程的,监理方质量控制的一个重要工作就是对承建单位的测试过程进行监督和管理,以达到促使承建单位提高工程质量、控制承建单位的开发质量的目的。
监理对承建单位的测试的监理工作可分为测试过程的监理和测试问题的监理。掌握了软件测评能力的监理能够根据项目开发的方式与实际情况,对软件开发的工作量、进度、需求分析、设计、编码、测试直至验收的全过程任意点进行检测、度量和评估,使软件开发过程透明化。这样,监理就能够在第一时间发现问题,督促承建单位进行整改,从而达到控制开发质量,保证项目工期和投资的目的。
例如,监理可以通过掌握的测评手段,通过代码标准校验,来提高代码的可靠性,还可以检查以DbC(Design by Contract)规范开发的代码的正确性,同样可以对设计是否符合规范等进行检查和评估。通过这样的检查,就能预防类似于未处理异常、函数错误、内存泄漏、性能问题、安全隐患这样的代码问题,以及违反开闭原则、替换原则、依赖性原则等等设计问题,使预防设计和代码错误成为可能,从而大大节约成本,提高软件质量、开发效率和监理工作的有效性。
如果监理不具备评测能力,不仅仅是无法使整个开发过程处于透明状态,就是最基本的监理工作也无法做到位。试想一下,如果监理不懂得测试技术,没有掌握相关的检测、度量和评估技能,如何能够对开发方的测试过程进行有效的监理?对于开发方的测试计划、测试用例、测试过程、测试结构报告、测试分析、覆盖率分析等的正确性、合理性和有效性如何能够做出正确判断呢?
因此在应用软件建设项目,特别是电子政务建设项目中,软件测评能力已是有效实施监理的重要手段之一。
这一点有可能成为未来监理商是否得到青睐的制胜法宝,也是监理应具备的关键能力之一。这一点也得到越来越多的用户的认可。