CMMI入门 - 通用实践的实施GP 2.1-GP 2.5

上文《CMMI入门-通用实践简介》讨论了CMMI通用实践的意义与对过程有效性的重要性。我建议在讨论通用实践实施之前,先从那里了解好实施通用实践的目标。在这里让我们讨论一下如何在CMMI的通用实践方面,满足SCAMPI 评估。也对比一下这些通用实践如何能够帮助我们提高效率。

CMMI的第一级通用目标只有一个实践,就是完成任务而已。这里没有什么过程管理的概念。只要有能力,把任务完成交差就可以了,没有其他的过程质量的要求。大家可以用任何方法步骤,把接收到的输入,转变为所需的输出就可以了。

请留意,CMMI在通用目标与实践中使用的词是“process”,翻译成“任务”不很正确。我在这个文件里使用这个“任务”的翻译,目的在于更容易明白。希望不会产生太多的误解。

第二级的通用目标,就是“受管理的”。不要太关心“受管理”是否真的被高效管理。这只是一个CMMI的词。“受管理”在CMMI里,只是说满足第二级的全部通用实践而已。以下就是10个第二级的通用实践:

GP2.1 建立组织政策

经常有人问我:“什么是政策?”。用一个最简单的案例,就是买东西之后要退货。商家就会有一个退货政策:“凡是没有破坏包装,顾客可以在一个月之内凭发票到客户服务部办理退货手续”。所以一个政策就是一种情况与条件,作为一个操作的准则。政策通常说明在什么情况底下需要做什么,不能做什么,而一般不包括操作的细节。

政策是高层领导指定的。是代表高层对员工操作的期待。

如果要满足评估的要求,我们可以在每一个规程定义之前,说明“组织要求在这个那个情况下,按以下规程执行这个任务”。这就可以满足SCAMPI 的通用实践要求了。

比如:“版本发布之前与进展有此需要的时候,需要进行配置审核,以保证产品配置的一致性与完整性。”

比如:“每一个项目的活动都需要与需求保持一致,以保证产品能够满足客户。”

一个政策的作用,就是提供一个准则,让组织里不同的单位,在同样的情况底下,都会做类似的事情。虽然在第二级的时候,每一个项目都可以用自己的方法操作,但每一个项目在相同的情况,都需要作同类的工作。比如上面的第二个案例,需求管理。每一个项目都需要明确需求,承诺实现需求,但每一个项目都可以用不同的方法:有些用不同的工具,也可以自己开发工具,甚至用人工纪录。但是每一个项目都需要明确需求,把需求的变更处理好,并且实现需求。

很多时候我们把政策与规程都混在一起。这个不很专业,但只要我们清楚哪些是政策,并且记录在文件里了,就可以满足GP2.1的评估要求了。

谈完了过级的要求,谈一下有效性的考虑。如果一个政策要有效,就需要有下面的现象:

  • 员工都知道并明白政策的内容
  • 违反政策的行为是不容许的
  • 政策按需要进行修改

推求效率与质量的组织,就会关注如何保证以上的效果。那么,他们的领导都会关注政策的实施,员工也得到适当的培训,并且不遵从政策的都会得到应得的后果。

评估政策的实施是否有效,就只要访谈几位员工,看他们对政策的理解是否一致,察看违反政策有什么后果,也可以访谈一下领导,看他如何处理违反政策的行为,等等,就可以了。

GP2.2 策划任务

通过评估的要求就是任何任务都有计划的记录。很多任务,如配置、QA、度量、风险、等等,在它们相关的特殊实践之中,本来就有要求计划的,满足了它们的特殊实践要求,就自然满足了通用实践要求。其他特殊实践没有计划要求的任务,它们计划的文档要求,从通用实践的角度看,不是很严格。只要一些拿得出来的东西就可以了,比如其他的计划里有提到、其他文件里、自己的笔记、电邮、会议记录、等等有记录就可以了。

除了记录之外,通用实践对计划还有三个要求:实现方法的步骤、相关人员的承诺、被使用的痕迹。承诺可以通过人员参与评审来证明。计划受到修改就是使用的证明。

从计划能够发生有效的应用来考虑,可以把计划看成为一个成功的蓝图,那就需要:

  • 计划是需要有依据的:

任务需要完成的产品与目标、以至任务的工作范围都明确并且有依据

  • 计划能够提供资源的预算:

任务的估算是合理的,所以资源的要求是合理的,主要是不过分的
干系人都识别了,人员的参与、权限与职责都明确

  • 计划能够指导执行:

提供明确清楚、没有冲突的任务的执行提示
任务的执行的确是按计划开展的

  • 计划有一定的预测能力

主要的风险都考虑清楚,并且有缓解与应对的方案

  • 计划的投入有合理的回报

用于计划的时间与工作量是与任务的规模与复杂相关的。就是说,简单任务的计划也应该是简单的。复杂的任务,计划就需要详细一点。
计划的内容覆盖重点而不是过分的限制,内容与任务的规模是匹配的

很多问题都与干系人与风险有关。在评估的访谈过程中,很多人不能顺利回答这方面的问题。其实干系人就是项目成员、客户、供应商、以及组织内部的上下游人员。凡是可以影响项目,或是受项目影响的人都是项目的干系人。重点不是把干系人罗列到一个表格里,而是要考虑干系人如何参与项目的工作,项目如何满足与/或配合干系人的需要。比如:产品的安装人员就是一个项目的干系人。那么,项目的配置管理工作有没有考虑到他们呢?考虑干系人,与其他任何通用实践的考虑一样,都是希望提高过程质量与产品质量,不是制造更多的文档,或是设置更多的限制。

风险呢,就是项目里每一个任务是否有信心按计划完成任务。项目经理都会处理这些问题的。高效的项目管理就会预先考虑这些问题,做好处理与应对。这才是策划的本意。

有效计划的关键,在于做计划的本意就是在于能预知任务的成功关键与机会。当我们经过这样考虑,在评估的应对方面就会得心应手,否则就会表现得生硬。

QA需要有两个层次的计划:一个是为项目进行质量保证活动的计划。内容包括决定QA审核哪些对象最能保证项目的过程质量与产品质量。一个是每一个审核活动的策划,包括审核的实施细节。

EPG有很多类型的活动都需要计划。比如一个小改进的活动,他的计划内容就需要包括基线原有的过程效能、制定新规程、培训与辅导、监控、分析新规程的效能、等等。内容也应该包括如何进行规程效能的分析、比较等等的方法。

要强调的,EPG的职责并不限于制定新规程。EPG的使命是提升企业的过程效能。这样,EPG就需要监控企业的规程效能。这些活动,也需要计划,来明确实施的负责人、时间段、统计分析方法、判断的准则、等等。单单制定规程不可能是高效的过程管理。

GP2.3 提供资源

资源包括资金、设备、时间与有恰当技能的人员。我们经常投诉时间不够。如果我们大部分的项目都可以基本按时完成,那么,情况就不能说是时间不够。我们的任务基本上都有足够、哪怕是不很充裕、的时间。

要通过评估,这个基本上就是一个证明:一般任务都能基本按时完成。

这个通用实践影响过程效能的方面,最主要的,就是员工的技能。因为一般企业的管理都重视技术,所以员工的技术技能不足的时候,领导是看得见的,所以技术技能也不是一个问题。真正的问题,在于管理方面的技能,尤其是过程管理的。这方面的技能,需要包括对效率与质量的追求与对过程效能的理解:什么样的操作有什么后果,用什么样的度量指标来分析、判断操作的状态等。这些都是经验的积累。所以通常EPG与QA都需要是经验丰富的人员。这样才能得到项目员工的尊重。这也是EPG人员的技能要求之一。

有一个案例:在审核之中,发现了一个故障的分类,以我的判断,是一个非常有效的分类方法,因为那些分类有非常明显的指导性。就是说,分类是以解决问题的角度制定的。这样有利于处理这些故障,以及将来预防这些故障发生。但是很多评委就分不清楚这个分类的重要性,并表达很多人都能够把故障分类。不久之后,就在同一个审核,就有人显示其他的分类法:把大部分的缺陷归类到中等的问题,不疼不痒。这些分类,一看就知道是以各方面的利益为依据,让员工不特别受考核的冲击。立意无可厚非,但不是改进之道。如果不能正确判断操作的后果,就很难找到高效的改进。这个例子也说明拿过程数据考核就会导致歪曲过程的结果。

领导也需要明白什么是有用的技能,否则得到晋升的人员,往往不是具备这方面技能的人员,这当然是不利于改进。在过程改进的领域里,领导也需要能够分辨哪些是有用的技能,企业效能才有机会逐步提高。

G2.4 分配职责与权限

职责与权限也是一个很容易认证过级,但非常难做到有效的领域。在第一个版本的时候,CMMI只提到分配职责。后来发现这个容易满足,但不能有效,因为承担责任的人,不一定有履行职责的权力,所以改成职责与权限。这样就解决了一部分的问题。但在中国,这个问题还有很大的不足。

要过级,几乎只要在项目里每一个任务或是部门里每一个岗位都明确了职责与负责任的人员,评估就可以通过。

但是如果要有效,那么需要考虑的因素就多得多了。比如:员工在履行这个职责的过程中是否有授权作出所需的决策与判断?这些权限,是否恰当?一位QA向项目提供了一些处理不符合的改进建议,他有要求项目整改的权力么?如果QA得到授权,被赋予这个权力,那么,项目执行了之后效果不好,是谁的责任?QA的还是项目的?我们可以看到,QA没有这个权力,项目不进行整改,效果不会好。QA有了这个权力,项目被强制进行整改,效果也可能会不好。所以我们知道,这个QA的权力是不恰当的。要求项目整改的权力,需要存在于能够承担执行这个整改的后果的责任。这只能存在于项目的领导。

另一个我们在这个领域有效运作的困难在于我们对职责、权限缺乏认识。比如我们说,同级评审会议在于提出问题,最多也只是建议,而不是决定解决方案。我们就不明白为什么。我们认为,就地处理了问题不是很痛快么?这是因为解决方案是作者的职责,不是评委的职责。作者对于整个文件内容有一个理念。评委就不一定有同样的理念。所以,作者对于一个整改方案,如何影响文件其他部分不但是有一个比较全面的考虑,也可能需要有一些时间充分考虑,不应该,也不能在会议当场可能妥善处理。作者承担修改的后果,所以这是作者的决策。

我们可能会问:如果作者能力不好又怎样?更理直气壮的是:评委的经验比较丰富,作者应该听评委的!

从过程管理的理念来看,这些观念不是高效的。当然,评委如果比较有经验,他的意见就很有机会比较好。但是如果真正要确保意见是好的,就要通过比较充分的对比、分析与考虑。这点评委有自己的任务,一般是比较难的。而且文件质量的好坏,是作者的责任,评委也不会愿意承担这个责任。

如果我们在G2.3提供的员工都具备适当的技能,那么作者就会有决定适合方案的能力,他就能理解评委的意见,能够把评委的意见加入到自己的考量里。这样就两全其美:作者承担文件的质量责任,然后又能够利用评委的经验。当然,这些只能在大家都有一个追求提高产品质量的目标的情况下才能实现。这个共同目标也是过程改进的一个关键因素。

最近也有一个经验:我写了一个报告,标明的“草案”,不能传递,然后发给一位同志查阅,希望他能提点意见。在这个过程中,我发现有些地方我还需要细化一点,表达得细致一点。当我们交谈的时候,他说:都很好,只是报告里的建议比较不适合。在交谈中我同意了把建议删除,然后就等待着他把文件发回来让我修改,我就一并把那些地方也修改好。怎料他自动修改了就直接发布了。我连我自己的报告最后的版本也没有看过。我很吃惊这样的事情发生。虽然大家“认为”对某些意见是一致的,并不代表不是作者的人就有权去修改人家的文件。这是因为有如上面案例的评委不应该制定方案一样,会产生混乱。

我经常收到同志发给我得邮件,和我讨论问题。大部分的下款都没有署名。我觉得很不理解。因为一个名字很容易写,花不了多大的功夫。写了,人家就知道你是谁,这对交流有帮助。大家可能想着我可以查出来作者是谁。但是为什么要我去查呢?署名不单是让人家知道你是谁,也是一个“这个信是我写的,里面是我的意见!”的表达。你看,这样作者是多么的自信、多么的为自己的东西承担责任!写信不署名就是一种习惯,一种有巨大负面意义但非常容易改的习惯。但是很多同志还是不能改。在无奈之余,也意识到在国内,职责与权限的认识与实践的确是一个问题。

G2.5 培训人员

这个实践也是比较容易认证过关。作为通用实践,这里只要求按行使任务职责所需的技能培训就可以了。培训的形式也不一定要求非常正规。只要有一些纪录甚至回忆就可以了。

至于培训的有效性,那就是另一回事。要让培训有效,策划培训活动的人员需要明确培训的需求:这个培训期待提供哪些技能,让后按这个需求安排培训活动。在一般的领域技能培训之外,我们也需要在恰当的情况下进行深入一点的专题培训或是交流。比如我们当然需要培训如何进行同级评审。其实在实施了一定时间之后,也会需要进行一些如何主持评审会议、改善泄露率技巧、等等的培训。

这类情况在各个领域都存在。比如:有效的缺陷分类可以预防缺陷的发生。而且情况与目标不同的时候,分类方法可以不同。项目复盘或其他情况也要把缺陷分类。如何把缺陷分类好就是一个可以培训的课程。

培训完结之后,也需要最低限度短期内观察培训的后果,尤其是在工作之中的应用。这不一定要非常精确,也不一定需要定量的,只要有一些可以观察的指标就可以了。比如配置管理培训,就可以观察受训之后,员工是否因为明确了步骤,导致完成配置任务的效率提高了,等等。

目前业界的培训理念,对如何评价培训的效果还没有一个合理有效的办法。因为每一种方法都有它的副作用、坏影响。所以在观察培训效果的时候,不能对数据过分认真。

上述的GP2.1到GP2.5,通过认证评估的要求,与有效操作的对比,希望大家可以了解,这些通用实践都是对过程较能有很大的影响的。下次再讨论其他的通用实践,敬请留意。