天天看点

在小组织里实现和保持CMMI的5级成熟度

赵星汉 译

前几天和丛斌老师简单讨论了下小组织里贯彻执行高成熟度CMMI的可行性,丛斌老师发了这篇文章给我参考。我觉得挺好的,就翻译了一下,以供国内相关学者老师参考。

研究人员和从业者都进行了多年的过程改进研究。由CMMI研究室提供的CMMI模型,它由许多指引产品和服务的改进活动组成。CMMI并没有告诉你如何将其应用到你的工程和服务中,但是它规定了通用和专用的实践需求。CMMI评定的成熟度等级范围从2到5,其中5表示一个组织被认为是“优化的” 因为它具有高度成熟的实践,可以利用其复杂性定量技术的测量策划并有效实施组织过程改进。成熟度高的组织培养一个组织范围内的环境持续的,可测量的,过程改进和高性能。

在一个小组织里(小于50人)实现CMMI高成熟度比在中型和大型组织里难得多。最主要的原因是小组织里很少有经验报告。这就是说大多数的小组织并没有应用CMMI是因为他们觉得太难了。但是,当管理层认识到高成熟度的好处,那么高成熟的需求就会增长,哪怕他们还不到50人(http://fremle.talkingvillage.com/resource.x/1585)。

根据现在CMMI实验室数据库信息,全世界范围内大概有5500家组织实行了CMMI,但只有344家达到了5级(赵星汉同学:他看的似乎是2013年3月的报告_),其中78家在美国,只有不足%3是小规模组织(赵:那不就是两家么),而且这78家里超过半数都是军方的。本文描述了一个叫做Keymind组织,它是Luminpoint公司的一个部门,做CMMI的历程,总时间历时8年,其中1年用于维持成熟度5级。Keymind提供了软件开发,市场策略,以及针对商业和政府客户的以用户为中心的服务。

我们的历程

在开始阶段,我们坚信它是有价值的。但是就和很多组织一样,我们也非常担心,CMMI是否适合小组织。但是,不考虑潜在的困难,我们认为没有标准是完美的。更何况CMMI的成熟度是某些特定的客户的工程所要求的。而且即使不考虑顾客的要求,我们也相信如果正确理解CMMI,在过程中使用它将是对我们有益的。达到一个成熟度,不论是什么级别,都需要时间和资源的投入,这些都需要回报。达到一个高成熟度需要更多的投资。因此,我们定义了明确和可量化的业务目标,如利润的增长,通过提供更高的产品质量和能力以获得更多的顾客数量,及时交付以及有竞争力的支出,同时也改进组织的整体稳定性。

在小组织里实现和保持CMMI的5级成熟度

图 1 可观的回报。这些年我们公司各员工的人均利润趋势、每次发布的需求数量、每项需求的缺陷数量都显示了巨大的收益。我们有意将Y轴归一化以隐藏敏感数据

图1显示了我们的CMMI投资获得了可观的回报。蓝色的线表示了员工的人均利润,它在10年里翻了一倍多;其中高成熟度的时间(3级以上)的收益最好。图中也呈现了我们的工程的规模和质量在这些年的提升。紫色的线是我们这些年的发布数量,用每次发布的需求数量来衡量,显示了我们是如何高效的在每次发布中分配更多的需求。此外,绿色的线表示平均到每个需求的BUG数量,在5年内也有明显的下降。因为我们每次都能交付给客户更多的功能,同时BUG更少,从而我们的员工人均收入更高。

我们用需求的数量来表示规模和复杂度,而不是LOC,是因为在我们的环境中后者的度量不太可靠。“每个需求的错误数量”和“每个发布的需求数量”的时间范围都有限,这就意味着,我们无法呈现可靠的2008年之前的趋势。我们在3级之前的数据是不可靠的,一个观点就是我们引入了一个重要但是被忽视的悖论:3级之前显示量化改进是困难的,因为整个组织的数据收集既不可靠也不够充足,无法支持统计分析。

如何开始

理解做什么去执行CMMI,我们从寻找经验报告开始。但不幸的是,在那时没有多少合适的案例(2004年左右),于是我们开始和本地的CMMI和过程改进专家一起进行沟通和工作。我们的主要目标是建立一系列既适合我们的组织同时又符合CMMI要求的实践。最初的实践包括项目估计,计划,以及可以应用到组织各项工程的配置管理。在达到第二级,以及后边到了第三级,我们开始关注生产率效益,并在这个时候,组织中的员工开始对我们主动流程改进所吸引。当得知我们必须每三年重新评估一次以维持我们的ML 3等级时,我们认为只有进一步使用CMMI进行改进并针对ML 5才有意义。

为了成功的从三级向更高级别迈进,我们从分析文献开始,查找其他的组织是如何做到5级的报告。对少数现有研究的分析表明,大多数报告组织都侧重于同行评审过程。同行评审非常有用,因为它提供了很多的数据,这些数据能让后续高成熟度中的量化分析容易一些。但是,他们致力于缺陷的数量和类型,这些是安全关键领域中非常重要的参数,但是并不适用于我们。我们开始集中于技术过程,例如我们技术架构对标准的符合,以及生产中的缺陷数量,这是非常好的切入点,因为我们已经有多个工程中的可用的数据。因此,我们意识到单独应用5级的实践到同行评审并不一定适合我们,因为它不能提供给我们的项目经理有用的决策信息。相反,配置管理和问题追踪工具中大量的有价值的数据对分析和处理4级和5级的关键过程更加有用。因此,我们的方法是充分利用这些工具。

有用的经验

一些因素帮助我们成功达到5级。

内部的专用资源

在一个组织里建立和施行CMMI的最佳实践是需要努力和时间的,这通常与上市时间和工程截止日期是冲突的。进一步说,一个小组织中,同一个资源往往有多种用途,于是针对计费时间和流程改进的需求就变得更加困难,因为资源有限,迭代很短。致力于实现CMMI目标的内部资源和项目的现状,促使我们与组织的其他成员进行了有效的沟通,该做什么,如何以及何时进行。鉴于我们在小型组织中应用基于CMMI的过程改进活动的经验,我们认为没有内部专用资源,几乎不可能实现比ML 2还多的目标。

主管领导的坚持

该组织的主要领导者从一开始就深信使用CMMI作为我们组织实践的框架的重要性。在获得3级评价之后,获取5级成为我们领导的座右铭以及全体员工的愿景。幸运的是,我们的主管领导在这期间并没有改变想法,但是我们可以想象,如果他们并不完全认同我们的过程改进目标和路线的话,我们会面临多少困难。

换油文化(原文直译就是这个,这是啥意思)

该组织展示了一些关键特征,这些特征可以促进过程改进的识别,定义和推广,所以变更发生的相对容易。这些特征包括共同的愿景、公开、灵活和创新。人员之间固有的开放性和沟通便利性遍及企业的各个层面,并可以快速确定最佳实践。领导力很好的确立了目标,激发了激情,并为每一次CMMI历程中的里程碑的胜利进行庆祝。

严选首席评估师

CMMI需要一个首席评估师,采用现有的评估方法(SCAMPI A类)来确定组织的成熟度等级。一般而言,CMMI要求人为解释,并就组织背景下如何解释和定制CMMI实践进行主观评价。因此,从组织愿景来讲,一个首席评估师是否与组织的CMMI解释保持一致是很难预测的。CMMI研究室允许组织挑选其首席评估师。在我们的经历中,我们开发和应用了严格的访谈方法来选择首席评估师。此外,我们利用CMMI一个3级过程域——决策分析与解决方案(DAR),其中的专用实践来用于更加严格的制定和记录重要的决策。同样的,在选择首席评估师时,我们也应用了DAR,并记录下我们的结果。有意思的是,这些信息甚至在评价时作为CMMI的DAR实践的证据也是有用的。

外援

在一个小组织中,负责过程改进的管理人员通常只有一个人甚至是兼职的。很明显,一个人具有完成一个大变革的所有技能这是很少见的,例如达到5级需要过程改进,管理变更,定量测量技术,统计分析,评价和工具支持,一个人很难具备所有的技能。在我们的经验中,我们发现必须依靠可靠的外援来提供资源的组合,补充我们组织中可用的,囊括完全支持我们的流程改进策略并拥有相同理想和价值观的人员。

小迭代

CMMI依赖过程和产品的数据分析。为了有意义并提供可靠的指示,数据分析需要一定数量的观察值或数据点。平均而言,持续进行大约三个月的迭代有助于我们在相当短的时间内建立具有足够数据点的知识库。我们认为,具有长迭代的项目将意味着等待更长的时间(以获得足够的数据点)进行定量分析。

我们学到了什么

我们在过程中学到了很多

你不能通过统计分析伪装你的方式(这是什么鬼?)

一个成功的CMMI实践应用,特别是具备5级特征的,需要很深的CMMI模型和统计学的知识,例如p值,置信区间等。为了尽快从外部合作伙伴过渡到组织的参与者,必须尽早掌握这些知识。

你需要研讨,来培训、收集证据,以及过程宣贯

学习新的或变更的实践是必要的。但是,真正重要的是证明这些实践在项目或组织中的应用,从CMMI评估的角度来看,这是通过创建证据来证明的。我们总是相信对所有员工培训的重要性和价值,但是培训有时候和项目的截止日期相冲突。利用研讨的方法,让我们从另一个层面达到培训的目的,让我们的员工从经历中学习,并在同时,我们可以收集到CMMI实践被采用的证据。而且,研讨是非常有用的机制,它能确保新流程是被应用的。

我们的研讨会通常安排在午餐时间进行(以消除项目截止日期带来的任何压力),包括对实践和期望的简短回顾,以及有关如何将其应用于各个项目的示例的讨论。过程改进和质量人员支持这些会议,并跟进项目经理和其他相关人员,以确保将实践有效地制度化。

让持续改进成为一件非常重要的事情

改进是一项持续且永不停止的过程。更重要的是,没有放之四海而皆准的真理。尽管存在最佳实践,但人们会发生变化,背景,项目和态度也有所不同。我们清楚地了解到,我们的改进方法必须是迭代的:您无法预先知道要测量什么才能获得有用的估算值。从所有利益相关者那里获取反馈,检查收集的数据和实施实践有意义是非常重要的,人们需要对自己正在做的事情深信不疑。他们需要切实感受到特定实践的价值,并能够发现和报告危险信号,以便始终改进实践。

必须实行自动化

不论是收集数据还是报告结果,具备一个自动化的机制都是很重要的。最初,我们认为过程改进团队可以使用工作表来解决与高成熟度测量相关的实践工作。很快,我们发现对于我们而言,从现有工具(尤其是问题跟踪和配置管理工具)提取数据并进行数据可视化和自动化分析会更加快速,低成本和方便,而且更加可靠。实际上,快速创建不同的报告视图有助于在项目和组织度量会议上进行讨论,并清晰的呈现出可改进的方面。

在单次会议中实行量化管理

最初,我们在整个项目生命周期中随意地进行了测量事件。随着时间的流逝,我们意识到在整个周期中将重要的度量活动分解为单个会议非常重要。这些会议包括与流程改进测量专家合作的必要项目人员,用来设定项目目标或对照目标审查进度,根据我们的预测模型量身定做决策的项目流程,并应用通过组织基准绩效和经验。

这是一个长期的过程

CMMI本地化,应用自定的实践,在适当的位置进行数据收集,建立数据分析工具来支持决策,以及做更好的决策,这些都是过程中需要实现的步骤。他们需要完成,并被证明采用CMMI以来的真正的改进。在这个过程中,若干年也就过去了,过长的时间会让动力直线下降。

现在,我们已经5级,我们致力于流程改进计划,这些计划主要是扩大对数据有利的项目的比例。现在,每个人都看到了收集数据的价值,以及如何使用它来推动明智的决策,并有效地使我们能够监视项目。因此,我们试图应用CMMI最佳实践到每一个项目和每一个人。考虑到我们工作的项目类型,我们还需要对数据进一步分层。例如,我们发现,使用COTS软件解决方案构建的项目具有与完全从头构建软件的项目不同的性能基线。

我们仍在努力收集更高质量的指标。我们已经收集了错误信息,并根据错误类型对每个错误进行了分类。但是,我们觉得分类结构有点主观,部分定义模糊和重叠,不同的人对相同的BUG会有不同的分类。因此,我们开始花费时间和精力来研讨可能的改进,定义一个新的BUG分类结构,之后为了验证,超过90%的开发人员每人分类10个缺陷来验证它。我们随后应用确认的反馈来进一步优化新的分类机制。如果用时间和精力来衡量这项活动,但是我们觉得这是值得的,因为缺陷的信息对于理解我们的过程和改进预测模型是非常重要的。具备了持续的流程改进的习惯后,我们希望能够证明缺陷重新分类投资的定量回报。

最后,虽然数据分析十分有用(见以上观点),它也是十分危险的,如果缺乏严谨和科学的基础,它可能会导致你得到错误的结论。消除或至少减少数据解释中可能出现的错误对于确保不会做出错误的决定或至少是提升信心很重要。例如,我们现在已经大大重构了我们的测量工具,以更好地预测生产中的缺陷。过去,系统会预测缺陷的范围(低:0至2,中:3至5,高:6或更高)。开始阶段对缺陷进行分组很有价值,尤其是作为获得信心并查看缺陷预测活动的价值的起点。但是,我们后来意识到,低,中和高的概念是主观的,并且在项目之间可能会有所不同。因此,我们修改了预测变量的测量范围,从顺序范围(低,中或高)到实际范围(即缺陷数)。

我们的“争取到5级”的计划是成功的。我们在这段经历中学到经验使我们保持在最前沿并帮助我们在每一级别定量的检查和改进我们的实施效能。即使这段经历的时间很长,并且需要巨大的投入,但是我们也从适合我们业务的方式的CMMI模型和每一个涉众的决策支持中获取了巨大的收益,范围涵盖了我们的员工和顾客。现在,我们致力于以更开放的心态,继续我们的CMMI量化改进道路。

继续阅读