GUIDE
导读
CMMI简介
1.1CMMI定义
CMMI模型,中文全称叫 (软件) 能力成熟度集成模型,其前身是SW-CMM(Software Capability Maturity Model),SW-CMM是20世纪80年代美国卡内基梅隆大学软件工程研究所(SEI-CMU)开发的用于评价软件开发组织过程能力的模型。
CMMI模型和ISO 9001体系一样,都可以被看成质量管理体系 (框架) ,只不过CMMI更适用于软件开发领域。CMMI模型最新版本是V3.0,但是对企业认证来说,主要还是依据V2.0版本进行,而我本次分享的内容,还是按照软件开发我本人比较熟悉的V1.3版本来撰写,CMMI本身版本更迭及内容变化,不是本文的关注的重点,不做细表。
1.2CMMI核心内容
CMMI模型分为三个分支,适合于供方、乙方的模型有CMMI-DEV(主要针对开发类)、CMMI-SVC(主要是针对服务类组织);适合需方、甲方的模型有CMMI-ACQ(主要是针对采购类组织)。
CMMI模型组件,按照严格要求,包含三个控制级别,分别是:1)必需的2)期望的3)参考的。其中第1点是必须要满足的,另外两点,视组织的具体情况而定。
CMMI-DEV包含了22个过程域( Process Area,简称PA),这个22个过程域,可以被分为项目管理类(7个)、过程管理类(5个)、工程类(5个)和支持类(5个)。
过程域是一类最佳实践的集合,不是过程的集合,过程一般是有顺序的,而集合是没有顺序,这一点,对于CMMI初学者来说特别重要,因为是无序的,这个在企业内部应用时,操作性比较弱,不好落地。
1.3CMMI等级划分
1.4
CMMI评估方法
CMMI评估主要采用SACMPI方法,SCAMPI A类评估方法是普遍认可用于使用CMMI模型来实施ARCA类评估的方法。SCAMPI A类方法定义文档((SCAMPI A Method Definition Document,MDD)定义了确保SCAMPIA类评估评定一致性的规则]。为了与其他组织进行基准比较,评估必须确保具有一致的评定。达成具体的成熟度级别,或满足某一过程域,对不同的已评估的组织必须具有相同的意义。
SCAMPI将整个评估分成三个阶段,依次为评估过程计划和准备、执行评估和报告结论。
CMMI应用存在的问题和原因分析
2.1普遍问题
2.2原因分析
1) 模型本身比较复杂
使用了大量表达晦涩的独创性术语对模型进行描述,而且评价指标众多,便利性不足,评价投入成本过大,另外还需要经过认证评估师参与方可进行。
2) 传统文化障碍
CMMI模型产生于美国,基于“三权分立”的理念在组织中分别设立了行使“立法”、“监督”、“执法”的三个机构,这种安排的目的是为了强调项目管理过程需要依据规章制度,即依“法”办事。而我国企业,尤其是中小型企业,大部分还处于“人治”的状态,因此在落地CMMI时存在一定的文化障碍,需要深刻理解后才能实施下去。
3) 缺乏企业高层支持和承诺
如果未能获得高层领导的支持和承诺,CMMI在实施过程中很难取得成功。没有高层的推动力量,员工参与度和积极性可能会下降。例如,如果高层领导不理解CMMI的价值,并未将CMMI作为组织的战略目标之一,员工可能会对CMMI实施过程不感兴趣或产生抵触情绪。
4) 企业文化和习惯难以改变
CMMI要求企业在流程管理、项目管理、质量管理等方面进行优化改进。然而,许多企业已经形成了固定的工作习惯和组织文化。这些习惯和文化可能与CMMI的要求不一致,从而导致实施CMMI时遇到困难。例如,在某些企业中,项目管理人员习惯于按部就班地完成任务,而CMMI要求进行风险管理和持续改进。
5) 缺乏培训和培养机会
CMMI的实施需要具备相应的知识和技能。如果企业没有提供充足的培训和培养机会,员工将很难掌握CMMI所需的方法和工具。例如,CMMI要求进行统计过程控制,但如果员工没有接受过统计分析的培训,将很难满足CMMI的要求。
CMMI实施改进策略
3.1更新认知
1)CMMI不是万能膏药
2)过程改进是需要时间的
3)活学活用,以我为主
4)我们要渐进式的改良
5)CMMI与创新不矛盾
6)建立宽容的组织文化
7)过程改进要全员参与
3.2行动策略
我在上面提出要更新认知,在行动上,对于实施CMMI也得有具体的策略和改进方向,下面分享8个策略:
1)循序渐进,由易到难
CMMI的一个核心思想是分级改进,宜采用渐进的方式,而不是突变的方式进行过程改进。比如对于2级的每个过程域,你可以先启动一部分活动,支持部分目标,待制度化了,再实施另外一部分活动,直至支持全部目标。
在实施CMMI 的过程中,企业一定要根据实际情况量力而行,千万不要把期望值定得太高,要一步一步来,先定出最基本的改进方案,把握分级的思想后再逐步提高。
2)先敏捷,再规范
先敏捷再规范,这个策略源于实践,其本意是先做到再写到,先短期利益再长远利益,先实效再完备。因为一步到位,直接采用规范的方法,阻力比较大,效果难以持久,很可能事倍功半。
敏捷方法以其短期内可以见效、对已有的开发过程调整幅度小等特点易被开发人员接受,所以可以先敏捷再规范,将敏捷作为通向规范的一个阶段。
过程改进要从普通的管理人员、开发人员做起,他们是CMMI体系的执行者,所以要满足首先他们的需求,让他们看到好处。否则,他们可以是体系建设的支持力量,也能是阻碍、破坏力量。
如果一家企业的项目规模大都是在10人以下,那么开发团队完全可以从敏捷方法开始着手进行过程改进。但是,因为软件开发存在非规模经济的现象,随团队规模的增加,很多敏捷方法可能很快就失去效果,这时还是要回到重量级的传统管理方法上来。
3)从下游开始,向上回溯
过程改进,优先从软件项目生命周期的下游开始,再逐步到上游。
一般情况下,信息系统的维护阶段是用户方与开发方交流沟通最多,也是最直接的一个阶段,软件开发承包方在这个阶段的错误很容易被用户发现,用户对开发承包方的管理、服务和开发水平的体会最直接、最深刻。
对于软件开发承包方来说,应该首先改进与客户直接交互的流程,确保高质量的产品能得到有效的部署与维护。在维护阶段发现的问题,应组织原因分析,详细分析这些问题的产生根源,以提供客观的证据证明在生命周期上游存在的问题,便于从生命周期的上游开始改进。
采用此策略,有助于解决客户反应最强烈的问题,易于发现瓶颈问题进行改进,能够在短期内取得良好的改进效果,制定的改进措施,也易于被软件开发人员所接受,是一种典型的由表及里的改进路线。
4)因材施教,各个击破
在一个企业内可能有多个开发项目组或者开发部门,不同的组与部门有不同的管理水平,在我们推行CMMI时,不要一刀切,不要希望每个队伍同时达到CMMI 2级或更高的级别,要区别对待。
比如产品研发部门,会经常进行大大小小各种各样的升级,产品的版本比较多,他们对版本管理认识得很深刻,在工作中已积累了一套行之有效的版本管理方法,对于这样的部门可以实施配置管理PA的要求,进一步提高管理水平,而对于其他做系统集成的部门这方面的工作可能就差一些,没有很好的版本管理的基础。
因此,如果一刀切要求大家都在3个月内都达到CMMI2级的要求,这个目标对系统集成的部门就定得太高了,所以,在进行改进时,我们应针对不同的项目组、不同的部门定出不同的改进计划。
5)教育与培训并重
教育主要是改变思想认识,培训主要是传授具体的方法,二者互补,可以使员工能够知其然,知其所以然,能够在主观上认可,客观上执行。
教育与培训可以有各种方式,配合起来使用。比如可以采用观摩学习、请外面的专家来讲、自我反省和培训等方式进行。
过程改进,不能仅仅定义为开发部门的工作,需要整个企业所有人员的参与和重视,因此需要教育与培训的对象比较多,不要有有遗漏,需要面向高层管理人员、开发管理人员、开发人员、市场人员和客户,制定有针对性的赋能计划。
6)充分利用管理工具
管理工具可以作为思想、方法的载体,它可以将管理可视化、客观化,降低劳动强度,解决手工无法解决的问题,易于为开发人员、管理人员所接受。充分利用管理工具来推行过程改进是一个很好的策略。
对工具的选择与购买需要把握好“够用即可”的原则。软件开发管理工具一般比较昂贵,如果一次性投资购买了比较昂贵的软件,可能软件的80%的功能用不上,待企业的管理提高到工具软件可以支持的较高的管理水平时,已经是2年以后的事情了,而2年以后的版本也需要升级更新。
所以,没有必要为用不到的80%的功能提前投资,而且现在各种各样的开源工具比较多,功能也可以满足需求,又便于进行客户化,因此,充分利用开源工具是一个不错的选择。
比如2019年,我在过程改进时引入了禅道管理系统,开始引入的时候是有些难度,毕竟是对工作方法产生了改变,一旦熟练了,就习惯了。
7)做好经验教训总结
每个开发人员、每个项目组、每个角色认认真真地总结自己的经验教训,并吸取这些经验教训,从长期来看,可有效地提高组织整体项目管理能力。
如果再加上参考某个模型,效果可能会更好。而现实中,很多企业把过多的精力盯在了外部的参考模型比如ISO9001质量体系、项目管理知识体系指南上,而忽略了自身经验教训的价值,没有充分发挥自身的价值。
8)善用外脑---咨询专家
目前,很多软件公司,为达到在较短的时间内通过CMMI的评估的目的,签订咨询合同,寻求咨询公司的帮助,我认为这也是一个可行的方式。但同时也需要注意,不要过分依赖咨询公司,尤其不值得提倡的是,有些公司直接从咨询公司处得到标准、规程,囫囵吞枣,直接照搬照抄,真正是为了评估而评估。
企业的标准规范必须与企业的实际情况紧密结合,这些标准规范在CMMI中被称之为企业财富,只有符合企业实际情况的标准规范才是最有价值的。
虽然咨询公司可以帮助企业通过评估,但企业的过程改进还是要以内部为主。软件的过程改进实际上是企业文化的转变,而企业文化的转变归根结底是人的观念、思想、认识、做事方式的转变,是个人能力的提高,这种提高是通过组织中的PMO或EPG、项目经理、技术人员、管理人员整体素质的提高得以实现的,这种实现的途径是通过学习、实践获得的。
因此,软件企业要真正注重实效的改进,就要尽可能多地与咨询公司进行交流,不仅要知其然,还要知其所以然,要有打破沙锅问到底的决心和毅力,才能真正促进企业过程的改进,同时也能丰富咨询公司的工程实践经验,获得双赢的效果。