摘 要:软件工程项目在信息化建设中的核心地位和工程现场可见性差、复杂度高、度量困难的特点使其成为信息化工程监理的重点和难点。咨询监理单位如何借助软件工程领域的成熟理论提升其对复杂、大型工程项目的监理能力、服务水平和客户满意度,是一个当前值得研究的课题。本文通过对过程控制理论和软件工程监理标准的分析,阐述了信息工程咨询监理单位导入甲方能力成熟度模型(CMMI-ACQ)的可行性和意义。
关键词:
信息化建设推行监理制主要解决两类问题:第一,解决因业主方IT技术力量不足而导致诸如前期需求不明确、要求不确切,中期质量不能把关,后期项目验收能力不足等问题;第二,解决因对乙方缺乏监督机制而导致的质量不合格、超工期、超预算等问题。但监理不是万能的,指望监理面面俱到、大包大揽也是不现实的,因为信息化建设的成败不但取决于承建单位的项目管理能力和成熟度,而且与甲方项目管理的能力和成熟度也有很大关系。
1.信息工程监理重点和难点
信息化建设中的软件工程项目有如下特点:是信息化工程项目的核心和灵魂;技术含量高,是智力、知识密集型的产业;往往处于发展中的高科技领域,涉及当前最新的研究领域,有时会是多种科学技术领域的综合与交叉;与技术的继承程度相比,创新成分多,新开发的工作量大;工程类型广泛,涉及国民经济的各行各业;不可预见成分高,可视性差,度量困难,变更比较频繁,风险程度大;软件工程项目的成功与失败不仅仅影响到当前软件工程项目的质量、成本和工作进度,而且关系到信息化工程项目的整体结构、性能以及进度。软件工程的这些特点决定了软件工程的质量控制更加复杂,是信息化工程监理的重点和难点。
因此,咨询监理单位如何借助软件工程领域的成熟理论、方法和工具提升其对复杂、大型的软件工程项目质量控制能力,从而提高自身的咨询监理服务水平,做到主动服务、事前控制、提高客户满意度,是摆在咨询监理单位面前的一个重要课题。
2.过程控制理论
"系统和产品的质量很大程度上取决于开发和维护该系统产品的过程的质量"的理念已经被国际标准化组织所认同并采用。美国卡内基-梅隆大学软件工程研究所 (SEI)在研究如何帮助各类组织开发产品和提供服务并保持其提供的产品和服务的质量的过程中发现:过程、人和技术是组织开发产品和提供服务的质量、成本和进度的主要决定因素,如图1所示。
组织提高其业务能力要注重人、技术、过程,其中只有过程把所有这三个方面紧密联系在一起,使组织的业务紧密配合以促进组织按照可持续的良性循环实现组织目标;同时过程也提供了如何利用组织的资源预测组织发展趋势的有效手段。过程控制理论的核心并不是说人和技术不重要,而是因为组织处在技术变化快,人员也是经常流动的不断变化的世界里,人和技术都无法很好地把握,因此,组织应该重点通过过程这个相对稳定的必要基础去应对这个不断变化的世界,通过过程改进来最大化人和技术的生产能力来增强组织的竞争能力,达到组织的商业目标或组织目标。如今,许多在制造业和服务业的组织认识到了保证过程质量的重要性:过程改进不是让组织员工努力地工作,而是通过帮助组织的员工更敏捷地、一致地工作,来达到组织的商业目标;同时,有效的组织过程能帮助组织实现其商业目标。
3.软件工程监理标准
全面质量管理理论将只关心产品和服务的质量过程归为"小质量",将关注组织所有过程的改进称为"大质量"。
软件工程监理标准分析:基于 PDCA 的思想提出了对软件工程监理的各关键点的控制内容的要求,提出了软件工程监理的原则以及过程输出结果的要求但不涉及过程内具体的技术工作,提出了软件工程监理方法、监理目标和监理实施关键点的技术管理要求;依据ISO/IEC 12207所定义的软件生存周期中的基本过程和支持过程,按照 GB/T 19668.1的信息化工程监理规范技术参考模型对监理阶段的划分,结合信息化工程中应用软件开发的一般要求,将软件工程监理的监理对象划分为 23 个过程,分布于 4 个监理阶段和软件工程支持过程中;主要从监理的角度对两个基本过程"获取过程"和"开发过程"及相应的支持过程来规范监理单位协助业主单位监控软件工程项目的获取,是软件工程项目的一个质量保证过程,对业主单位而言是内部质量保证过程,对于承建单位而言是外部质量保证过程。
通过以上的分析可以看出:软件工程监理标准类似ISO/IEC 12207标准是软件工程监理生命周期过程和基础标准,但不是进行过程改进的最佳标准,而CMMI是恰恰是事实上的软件工程领域关注"大质量"的标准。
4.导入CMMI-ACQ的可行性
SEI根据调查发现:近年来大型信息化建设项目多以失败告终,失败的主因是业主单位与承建单位存在信息不对称和双方的技术管理能力不匹配。
业主单位与承建单位技术管理能力与软件工程项目产出关系如图2所示:在业主单位与承建单位对软件工程项目的技术管理能力都较低的情况下,软件工程项目基本上是失败的;在业主单位对软件工程的技术管理能力高,而承建单位对软件工程项目技术管理能力低的情况下,软件工程项目的成败虽然不可预测,但失败的概率很高;在业主单位对软件工程的技术管理能力低,而承建单位对软件工程项目技术管理能力高的情况下,软件项目的质量很难满足业主的需求;只有在业主单位与承建单位的技术管理能力都较高的情况下,软件项目的成功的概率才会有所保证。
图2 业主单位与承建单位技术管理能力与软件工程项目产出关系
业主单位对软件工程项目的技术管理能力不够,使其对软件工程项目质量管理不到位,无法提出清晰的满足自身业务的需求、对需求定义不明确、缺乏通过招标确定合适的承建单位和监控承建单位的能力、无法控制对需求的变更,是软件工程项目失败的主要原因。基于上述问题,CMU/SEI 开发了软件获取能力成熟度模型CMMI-ACQ (CMMI for Acquisition),用以评估及改进获取组织的软件工程项目获取过程。
CMMI-ACQ是业主单位用于软件工程项目获取的标准,同样可以被咨询监理单位用来提高其对软件项目质量控制能力的参考模型:软件工程监理标准是软件工程监理生命周期过程标准,而CMMI-ACQ是软件工程监理生命周期过程的评估和过程改进标准,类似于ISO/IEC 12207是软件工程生命周期过程标准与ISO/IEC15504是软件工程生命周期过程评估标准之间的关系;咨询监理单位可以参考CMMI-ACQ的最佳实践协助业主单位提出清晰的软件工程项目需求,定义标准的获取过程,提高自身协助业主单位完成获取管理、招标与项目监控等重要工作,进而提高软件工程项目的成功率和对软件项目的质量、成本与进度的控制能力和服务水平;咨询监理单位可将CMMI-ACQ作为对承建单位提出清楚要求,采取有效的监控措施和正确的决策参考和与业主单位、承建单位进行有效沟通互动的语言,达到三方共赢的参考。