CMMI中的过程改进

无论是经典的软件过程模型,或是多种基于管道理论的敏捷方法,都是通过软件过程模型来组织软件开发过程,软件过程模型偏重于开发流程管理,这一节我们通过过程要素的另一个视图来剖析软件开发过程。任何形式的软件开发过程都可以使用流程、人员和技术三个方面来切入。流程定义一系列开发的步骤和操作方法,人员需要通过培训和管理提升技能,而广义上的技术包括应用领域、工具、语言、信息和环境。

  业界对如何进行过程改进也存在一些方法论和框架,最具代表性的就是CMMI(Capability Maturity Model Integration, 软件能力成熟度模型集成)。而敏捷方法中也提供了许多专门针对过程改进的实践、流程和工具。本文将简要阐述CMMI中的过程改进。

1. CMMI基本概念

CMMI由一组过程域(Process Area)、一些目标(Goal)和一些工程实践(Practice)组成(见下图)。通过这些要素的组合形成了五个级别,由低到高分别称为初始级(initial)、可重复级(Repeatable)、已定义级(Defined)、量化管理级(Managed)和持续优化级(Optimizing)。

初始级中过程没有制度化,过程是无序的甚至是混乱的,几乎没有什么过程经过妥善定义,过程执行情况难以预测。处于初始级的组织一般不具备稳定的开发环境,项目成功取决于个人或小组的努力,取决于精英和个人的经验(见下图a)。在项目中建立基本的项目管理过程来跟踪成本、进度和功能特性,制定必要的过程纪律,能重复早先类似项目取得的成功,具备这些特征的就是可重复级(见下图b)。已定义级中,在已将管理和工程两方面的过程文档化和标准化,并形成了组织级的过程资产。所有项目都使用经批准和剪裁的标准过程来开发和维护,需要收集数据,也要使用数据(见下图c)。而量化管理级则使用统计和其他量化技术对项目过程进行控制,建立了质量和过程性能的定量目标,作为过程管理的准则,质量和过程性能度量数据能用于支持决策(见下图d)。最终的持续优化级基于对过程中性能偏差的原因的定量分析,通过渐进的和革新的技术改进,持续地进行过程性能改进。组织过程改进得到识别、评估和实施,并且全体员工参与过程优化(见下图e)。

CMMI关注人、工具和方法,从无序的初始级开始,建立项目记录、建立稳定一致的过程、以事实为依据达到能够不断创新和改进的持续优化级,将企业过程成熟能力分为五个等级。我们在实施CMMI过程改进的关键在于将标准开发过程制度化。

2. CMMI中的过程改进核心域

CMMI把所有的过程域划分为四大类型,即过程管理、项目管理、工程和支持,其中过程管理与本章讨论的研发过程体系建设关系密切。以CMMI Dev 1.3为例,过程管理相关的过程域一共有五个,包括:

  1. 组织级过程定义(Organizational Process Definition,OPD),建立和维护有用的组织过程资产
  2. 组织级过程焦点(Organizational Process Focus,OPF):在理解现有过程强项和弱项的基础上计划和实施组织过程改善
  3. 组织培训管理(Organizational Training,OT):增加组织各级人员的技能和知识,使他们能有效地执行他们的任务
  4. 组织过程性能(Organizational Process Preformace,OPP):建立与维护组织过程性能的量化标准,以便使用量化方式的管理项目
  5. 组织性能管理(Organizational Performance Management,OPM):用量化的目标来驱动,并且用量化的方式来监控改进的效果

CMMI又根据目标等级的不同把这五大过程管理类过程域分成基本过程管理类过程域和高级过程管理类过程域两大类。项目两张图描述了这两类过程管理类过程域与其它过程域类别之间的互动关系。关于CMMI的详细讨论不是本书的重点,更多内容可参考相关资料。

 

如果对文章感兴趣,可以关注我的微信公众号:程序员向架构师转型。

我出版了《系统架构设计:程序员向架构师转型之路》、《向技术管理者转型:软件开发人员跨越行业、技术、管理的转型思维与实践》、《微服务设计原理与架构》、《微服务架构实战》等书籍,并翻译有《深入RabbitMQ》和《Spring5响应式编程实战》,欢迎交流。

发布了92 篇原创文章 · 获赞 9 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/lantian08251/article/details/100046757