CMMI 通用实践简介
 
经常有这样的情况:有些从事过程管理工作多年的员工,会发问一些很有趣的问题,比如:
  • 要多少文档才算足够? 又或者:
  • 需求跟踪要跟踪到什么程度?
为什么会问这些问题呢?因为我们是任务驱动的,我们只想知道如何交差。问题在于,这次的差事可以交了,但下一次有同样的差,就还是不知道如何处理了,因为这个新差与上次的有一丁点不同。就是相同,也可能记不清楚答案了,因为这些无缘无故的细节是很难记得清楚的。就是说,任务驱动是不利学习、改进、提升能力的。
 
最近提供了一个有关过程管理与QA操作的咨询。因为公司正在开展CMMI的认证工作,所以EPG成员也有参加。但是在回答一些问题的过程中,有一位学员就说:“我们现在就是要过CMMI。请你不要谈跟过级没有直接关系的理论!”我当场不知道如何回答。后来才找机会说明我的咨询,在于过程改进,提高效率。如果这样对过级有帮助,就非常好。我是没有意愿单谈过级的手段,而不关注过程有效的因素的。
 
这两个故事其实是有因果关系的。
 
这个就是我们的问题之一:我们的心态,就在于一些手段,一些招数。我记得以前在一个CCTV4的节目,听到过外国人学习武功,也谈到看到武功动作后面的文化与精神,才可能有成就。其实如果我们把这个道理,用在CMMI或是其他的过程改进的模型,也是适合的。
 
这个道理在CMMI表现的非常明显:因为它有“通用目标”与“通用实践”。一些目标之所以是“通用”,就代表无论什么任务,工作、活动,都需要遵从这些实践去做。
 
这个听起来好像简单的给念,其实可以解释为什么我们经常可以通过认证,但很少有什么明显的提高。就是一般主任评估师都不太关注“通用目标”。虽然在评估的过程中,也有考虑它,但是态度上有点得过且过,标准就没有掌握的很恰当。而通用目标与实践才是真正能帮助员工与企业提高效率的关键原因。
 
让我们看看,其实二级的通用目标与实践,基本上就是二级过程域所要求的总汇。同样,三级的通用目标与实践,就是三级过程域有关过程管理与集成管理的大成。这是什么意思呢?这个意思就是说,二级、三级的东西,都是武功的招数。当我们的招数练得熟练了,就变成了自然反应,在任何情况下出的招,都会是恰当的。
 
通用目标于实践就是在我们CMMI二、三级的实践都熟识了,就会在任何任务中使用,所以变成了“通用实践”。我以前就提出过:通用实践其实就是我们的习惯。这是一个看法。另外一个看法,就是过程的“内功”。我们也可以说这是过程的基本功。如果我们相信CMMI是最佳实践的集合的话,就是因为我们养成了良好的习惯,因此有了内功,我们才能提高我们的过程效能。
 
SEI 用来描述通用目标的词,就是“制度化”(Institutionalize)。这个词包含了经常如此、理所当然的含义。其实与习惯非常接近。
 
我希望负责与参与落实CMMI的员工,都清楚“通用目标于实践”的重要性。在这里,我试图把通用实践的解释分成三个部分:如何满足过级的要求,本意与期待,一些案例。希望大家能把过程效能与自己个人技能作为追求的目标,来从事CMMI的工作。
 
CMMI v1.3 只有三个通用目标:
 
GG1:实现任务:完成与满足了特定目标的要求。
 
GG2:管理过程:在完成与满组特定目标的同时,任何项目任务的具备以下的实践:
  1. 有明确的政策
  2. 工作都是有计划的
  3. 提供了工作的资源
  4. 分配好任务的职责与所需的权限
  5. 提供了如何完成任务所需的培训
  6. 任务的重要工件受到恰当程度的管控
  7. 得到干系人的恰当参与
  8. 任务与工作受到监控
  9. 工作得到第三方的客观检查
  10. 任务与工作受到高层的检阅
GG3:定义流程:
  1. 按标准规程定义(制定)项目的流程
  2. 收集过程实施经验以为将来参考与改进之用
如果我们把这些通用实践与CMMI 里面的特定实践对比一下,就可以发现二级的通用实践很大程度上与二级过程域的特定实践非常接近,而三级的通用实践,其实就是三级过程管理的特定实践的精华。这个关系是很有意义的。我希望在这里强调一下。
 
这个道理在于 CMMI 是最佳实践。在每一个特殊的过程域里,我们面临的,就是各种各样的任务:由项目所需的种种管理任务,以及质量保证与配置管理等等支持项目管理的支撑任务。他们都是比较基本的任务。完成一个项目的最佳方法,往往就是完成种种任务的最佳方法。
 
一个任务只是一个规模很小的项目而已。那么,一个项目如此,一个任务也应该如此,要保持高效的操作,我们每一个任务都应该与项目管理领域里面的实践非常接近。这样把同样的做法,应用到每一个任务,就是通用实践的概念了。
 
这样看来,满足通用实践,就等于是说员工已经熟习了CMMI 特定实践的最佳实践,并且能够习惯性地经常使用这些最佳实践来完成任何任务了。
 
另外一个重要的问题,就是项目与任务的规模差异很大,为什么适合项目的操作模式可以应用到每一个任务上面呢?这样不是小题大做么?
 
这是一个很重要的问题。我们小心看一下,CMMI里通用实践的要求,虽然与特定实践很接近,但是它其实没有规定实施的细节的。比如,GP2.2 的计划,就没有规定与 二级的项目计划里的做法一致。甚至也没有要求不同任务之间需要一致的计划方法。要求非常接近,但做法可以不一样。 这个是一个非常重要的概念。CMMI 里不断地说明其中的要求,只是“需要做些什么”,而不是要求“如何做”。我们在这个概念上的理解经常有问题,就让我们考虑一个案例。
 
就拿“策划”作为案例。无论在项目或是其他任务(在CMMI 的通用实践,他们用的词是“process”。为容易理解起见,我把它当成“任务”),作计划的目的,不外是明确需要完成的事情,资源上需要什么,有哪些步骤与活动,所有相关人员都了解自己的使命与任务,如何开展活动并承诺完成安排给自己的任务。这在项目如此,每个个别的任务,比如一个评审,也是如此。但是一个项目计划就比一个评审计划详尽很多。一来项目的规模大得多,人员比较多,沟通要求比较复杂,风险比较大。一个评审呢,资源要求比较简单,牵涉到的人员比较少,计划就可以简单好多。
 
我们从事 CMMI 就是过程改进,就是提高过程的效能。我们需要考虑一些规程的要求所需的投入是否过分,回报是否值得。这是每一个任务都不一样的,每一个任务都可以按自己的规模、技术、员工、时间、复杂度等等,用不同的操作,满足CMMI同一个要求。
 
我们将会在下一个帖里详细讨论这些通用实践的实施问题,请大家留意。