理解初始级
尽管等级
1
组织常被特征化为具有无秩序的、甚至是混乱的过程,但它们常常开发出能工作的产品,即使它们可能超出预算和进度要求。等级
1
组织的成功依赖于组织中人员的能力和杰出的努力。对所有成熟度等级的组织来说,选择、雇用、培养、和(或)留住有能力的人都是重要议题,但它们多半在
CMM
的考虑范围之外。
理解可重复级和已定义级
随着项目规模和复杂性的增长,注意力逐渐从技术问题转达向组织体系和管理问题——一过程成熟度的焦点问题(
Siegel 90
,
DoD 87
,
GAD-92
-
48
)。通过将最优秀职员所取得的经验教训纳入已文档化的过程、通过培育有效地执行那些过程必须的技能(通常以培训的方式)、以及通过以向完成任务的人们学习的方式所得到的不断改进,过程能使人们工作得更为有效。
为达到等级
2
,管理者必须集中注意力于他们自己的过程以便实现一个有纪律性的软件过程。等级
2
是等级
3
的基础,因为在处理等级
3
上的技术和组织体系问题之前,关注焦点必须放在管理者改进其过程的行为上。在实现等级
2
的过程中,通过将项目管理过程编制成文档并遵照执行,管理者建立起领导地位。
在等级
2
组织中不同项目的过程可以不同;为了达到等级
2
,组织体系上要求是存在指导项目建立合适的管理过程的方针。已文档化的规程为这些一致的过程打下基础,在培训和软件质量保证工作的帮助下,能在全组织范围内使这些过程规范化。
通过对整个软件过程加以定义、集成和文档化,等级
3
建立在项目管理的基础之上。在此情况下,集成意味着一个作业的输出顺利地成为下一个作业的输入。当作业间存在不匹配的现象时,在软件过程的规划阶段它们就能得到识别和处理,而不是等到实施过程中遇到它们时才加以解决。等级
3
上的一个挑战是构造这样一些过程,这些过程允许软件人员开展工作时仍有一定的自由度(
Humphrey 91b
)。
理解已管理级和优化级
成熟度等级
4
和等级
5
对软件产业界来说还是一个相对未知的领域。仅存在不多几个等级
4
和等级
5
的软件项目和组织(
Hllmphrey 91a Kitson 92
)。由于现有的实例太少,以致不能导出有关等级
4
和等级
5
组织特征的一般结论。通过与其它产业类比和利用软件产业界中能显示这些等级过程能力的少数例子,这些等级的特征已经得到定义。
图2.2
例子说明统计过程的基本概念,等级
4
和等级
5
的许多特征建立在这些概念之上。朱兰三部曲(
Juran Trilogy
)图(
Juran 88
)显示过程管理的主要目标。
图2.2 朱兰三部曲(Jurun Trilogy)
图:质量策划、质量控制和质量改进
Juran将质量管理分成三个基本的管理过程(Juran 88)。质量策划的目的是向运作人员,即软件生产者提供生产能满足顾客需求的产品的方法。操作人员生产出产品,但由于质量缺陷不得不做某些返工。这种浪费是经常性的(因为过程被设计成那种样子);执行质量控制是为了防止事情恶化。过程中的零星的尖锋,如图2.2所示,代表消防活动。经常性的浪费提供了改进的机会,抓住这个机会进行工作就叫做质量改进。
质量改进的第一个职责,也是等级4的关注焦点是过程控制。对软件过程进行管理以致它能稳定运行在质量控制带内。虽然必定还有一些经常性的浪费,测量结果中可能还有尖锋信号需要控制,但是系统在整体上是稳定的。正是这些地方,控制变化的特殊原因这个概念开始起作用。因为过程既稳定又可测,所以当出现某些例外情况时,能够识别出并阐述变化的“特殊原因”。
质量改进的第二个职责,也是等级5的关注焦点,是过程的不断改进。为了提高质量,变更软件过程,随后质量控制带移动。建立新的能减少经常性浪费的性能基线。在改进这样一个过程中所得到的经验教训被运用到规划未来的过程中。正是在这些地方,消除变化的一般原因这个概念开始引人注目。仅仅由于随机变化,在任何系统中均以返工的形式存在经常性的浪费。
浪费是不能容忍的;有组织地减少浪费的努力导致更改系统,也就是通过克服造成低效性的“一般原因”来改善过程以防止出现浪费。我们期望达到最CMM最高成熟度等级的组织,具有能在预测成本和进度的限制下生产出极端可靠的软件过程。随着对较高成熟度等级理解的加深,将对已有的关键过程区域加以提炼,也可能给模型添加些内容。CMM是从制造业中所产生的过程思想推导出的,但是软件过程不像制造过程那样以重复问题占主导地位。软件过程以设计问题占主导地位,而且是知识密集性的活动(Crutis 88)。
软件过程的可视性
软件工程师们对项目状态有详细而深入的了解,因为他们掌握有关项目状态和性能的第一手材料。可是,对大项目而言,他们的洞察力常来源于在其职责范围内的个人经验。项目以外的不掌握第一手材料的人,例如高级经理,对项目过程缺乏可视性,为得到他们监控进程所需求的信息只得依靠定期的评审。
显示在过程成熟度过每个等级上,提供给管理者的对项目状态和性能的可视性等级。每个后断的成熟等级逐步增加地提供软件过程更好的可视性。
图2.3 管理者对每个成熟度等级的软件过程的可视性
等级
1
的软件过程是一种无组织的整体——一个黑盒,项目过程的可视性是有限的。由于没有很好地定义活动阶段的划分,经理在确定项目过程和活动状态上极为困难1
。
需求以失控的方式进入软件过程,然后生产出产品。软件开发常被看作为不可知的魔术,
特别对不熟悉软件的经理而言更是如此。
等级
2
上,顾客需求和工作产品受到控制,已经建立起基本的项目管理实践。这些管理控制使得在规定的场合项目可视。构造软件的过程可看作为一个接一个的黑盒子,这使得随着活动在盒子间流动,在各过渡点(项目里程碑)上具有管理可视性。尽管管理者可能不知道盒子内发生事情的细节,但是过程的产品和用以证实过程正在适当进行的检验点都有是确定且已知的。当问题出现时,管理者能对它们作出反应。
等级
3
上,盒子的内部结构(即项目定义软件过程中的作业)是可视的。内部结构表示组织的标准软件过程用于具体项目的方式。经理们和工程师们都了解他们在过程中的角色和职责,并且知道他们的活动如何在合适的细节层次上相互影响,管理者预先作好应付可能发生风险的准备。由于己定义的过程提供对项目活动很好的可视性,项目外的个人能获得精确的、即时的状态更新信息。
等级
4
上已定义的软件过程被配备上度量,并得到定量地控制。经理们能够度量进程和问题。他们作决策时,有一个客观的定量的基础。随着过程的变异性越来越小,他们预测结果的能力稳定地成为越来越准确。
等级
5
上,为了提高生产率和质量,以受控的方式对构造软件的新的和已改进的方法进行不断的试验。因为无效的或者易出错的活动均行到标识并加以替代或修改,有纪律的更改成为一种生活方式。不仅对现存在过程明察毫,而且洞察力扩展到能了解过程潜在变化的影响。经理们能定量地估计更改的影响和有效性。然后跟踪它们。