过程能力和性能预测
一个组织的软件过程成熟度能帮助预测一个项目达到其目标的能力。等级
1
组织中的不同项目在达到成本、进度、功能和质量等指标的能力上差别很大。正如图2.4
中的例子所示,随着组织软件过程成熟,在满足预定目标方面能观察到三个改进之处。
图2.4 成熟度等级所指示的过程能力
首先,随着成熟度增长,所有项目的预定目标结果与实际结果间的差异减小。例如,如
果有十个相同规模的项目预定在
5
月
1
日交付,那么随着组织的成熟,它们交付的平均日期会越来越靠近
5
月
1
日。等级
1
组织常常远退后于其进度表规定的交付日期,而等级
5
的组织应该能相当精确地满足预定日期要求。这是因为等级
5
上组织采用仔细构造的、在已知多数范围内运行的软件过程,而且确定预定日期是基于他们所具有的有关其过程的大量数据,以及运用数据时的性能。(在图2.4
中,用预定日期线右边曲线下的面积大小表示这一点。)
其次,随着成熟度增长,实际结果相对预定目标结果的偏差范围减小。例如,等级
1
组织中,对具有类似规模项目的交付日期是不可预测的,其变化很大。而等级
5
组织中的类似项目的交付日期在小得多的范围内变化。在最高成熟等级上变化范围很小的原因是所有的项目实际上均在接近组织的有关成本、进度、功能和质量等过程能力的受控参数的范围内运行。(图2.4
中,以集中于预定目标线附近的面积大小说明这点。)
第三,随着组织成熟度的增加,预定目标结果得到改善。这就是说,随着软件组织的成熟,成本降低,开发时间缩短、生产率和质量提高。在等级1上的组织,其开发时间可能十分长,因为必须完成大量的用以纠正错误的返工。相反,等级5组织采用不断改进过程和缺陷预防技术增加过程有效性和消除费钱的返工,使得开发时间得以缩短。(图2.4中,这点反映在预定目标线在指向原点方向上的水平移动。)
图2.4中所表示的在预测项目结果方面的改进基于以下假定,即随着噪声(通常以返工形式出现)从软件过程中消除,软件项目结果更加可以预测。但是,无先例的系统会使情况复杂化,因为新的技术和应用问题增加可变性,从而降低过程能力。即使在无先例系统的情况下,与比较不成熟的组织相比,较成熟的组织管理和工程实践的特征能在开发周期的较早阶段帮助识别和阐述问题。由于较早识别出缺陷,能消除后面阶段的返工,从而提高项目的稳定性和性能。风险管理是成熟过程中项目管理的必不可少部分。在某些情况下,一个成熟过程意味着在软件生命周期的早期识别出“失败”项目,使得在徒劳无功的事情上投资最小。
跳跃成熟度等级
CMM
中的成熟度等级描述在一个成熟度等级上组织的特征。每一等级均为接连的几个等级奠定基础,为有效地且效率高地实施过程提供支持。可是,在有益时,组织也可以使用比它们所在等级高的那些成熟度等级中所描述的过程。例如,虽然
CMM
中在等级
3
以前不讨论工程过程——一诸如需求分析、设计、编码和测试,但是甚至等级
1
组织都必须进行这些活动。在有利可图时,等级
1
或等级
2
组织可以进行同行评审(等级
3
的)、
Pareto
分析(等级
4
的)、或者引入新技术(等级
5
的)。在讨论为了从等级
1
提高到等级
2
一个组织应采取何种步骤时,一个经常性的建议是建立软件工程过程小组,而这是等级
3
组织的属性。虽然度量是等级
4
的关注焦点,但它也是较低成熟度等级的必备部分。
可是这些过程的潜力只有在建立适当基础之后才能得到完全的发挥。例如,同行评审不
可能完全有效,除非始终一致地实施这种评审,即使对非常紧急的项目也是如此,成熟度等级只描述一个等级上占主导地位的问题。等级
1
组织的占主导地位的问题是管理;策划和管理软件项目的困难掩盖了其它问题。
因为每个等级形成一个必要的基础,从此基础出发才能达到下一个等级,因此,跳越等
级是违反生产规律的。
CMM
识别几个等级,一个组织必须逐步经历这些等级才能建立优秀的软件工程文化。没有合适基础的过程,在正是最需要它们的时刻——即处于压力下—一不起作用,它们也不提供未来改进的基础。
等级
1
组织,在尚未建立可重复过程(等级
2
)之前,试图去实施已定义的过程,通常不会成功,因为项目经理会被进度和成本的压力压垮。这是在关注工程过程之前应首先集中注意力于管理过程的基本原因。看起来定义和实施一个工程过程似乎要比定义和实施管理过程容易(特别在技术人员眼中),但是如果没有管理规定,工程过程会成为进度和成本等压力的牺牲品(
Humphrey 88
)。
一个尚无已定义过程作为基础就试图实施已管理(等级
4
)的组织通常是不成功的,因为没有已定义的过程就没有解释度量的共同基础。虽然对于一个个项目能采集数据,但几乎没有什么度量对本项目之处的其它项目有重大意义,也不能显著地增加组织对软件过程的理解。缺少已定义过程时,由于被测过程的变化,要鉴别出有意义的度量是困难的。
一个尚无已管理过程(等级
4
)作为基础就试图实施优化过程(等级
5
)的组织,由于缺乏对过程更改所产生的后果的了解,多半会失败。在不能控制过程使它处于统计意义上狭窄的范围内(即过程度量中仅有小的变化)的情况下,数据中有太多的噪声以致不能客观地确定某项具体的过程改进是否有效。因为几乎没有定量基础用于作出理性的、有信息依据的决策,决策可能退化为宗教式的争斗。
过程改进工作应该把焦点集中在经营环境的止下文中组织的需要。具有实施较高成熟度
等级的过程的能力并不表示可以跳越成熟度等级。
总之,软件过程评估和软件能力评价方法两者均:
l
采用成熟度提问单作为现场访问的出发点;
l
采用
CMM
作为指导现场调查研究的路线图;
l
利用
CMM
中的关键过程区域生成标识软件过程强项和弱项的调查发现;
l
在对关键过程区域目标满足情况进行分析的基础上,推导出一个剖面;和
l根据调查发现和关键过程区域剖面向合适的对象提出结论意见。