这五个问题相当经典而且比较深,需要做过CMMI4、5级的朋友才能看懂这些问题。这5个问题是一位正在实践CMMI4级的朋友提出来的,而解答则是我的个人见解。

 

五个疑问是:

 

A.流程,子流程部分不明白

如果刚开始做4级,需要把指标与流程对应上,我们应该怎么做呢?是凭经验感觉还是有相关的过程步骤?
如果我们凭经验按上面的例子把流程,子流程,子子流程和指标对应了起来,然后通过改善相关流程来提高指标
但是如果我们的感觉偏差,对应错了流程和指标的关系,岂不是白费力气?


B.组织级和项目级的区别在哪里,如果PPB报告做成整个组织一个PPT里面包含各个项目的PPB情况,是否就是组织级的PPB呢?


C.PPM部分,分析及流程相关性部分,因为已经通过并执行3级的PA,管理了一些指标,做4级的时候,应该根据什么样的基准来选择哪些指标具有相关性呢?难道应该根据感觉吗?


D.4级是否是这样的思路,先确定两个指标是否相关,如果相关做回归分析,得到回归方程,使用一个已知的指标(上周数据)去预测下周的未知指标,如果不相关,那么就使用移动平均来预测。是不是所有指标都做预测?使用回归方程做预测,那么已知的指标下周如何预测?


E.如果流程Stable且度量数据呈现正态分布,则可将PPB Establishment Tool中的控制图的UCL,CL,LCL设定为Baseline。
即使得到了UCL,LCL,也不能确定是Baseline,我们还应该对得到UCL、LCL的原始数据,也就是相关的指标进行正态检验
如果确定是正态分布的那么相关的UCL,LCL就可以做为PPB
如果不符合正态分布我们应该怎么做PPB呢?

 

以下是各问题的解答:(仅供参考,欢迎各路朋友各抒己见)

 

首先是对这些问题的“通式”解答:

 

你们公司应该聘请了咨询公司吧?这些问题最好还是让咨询师来回答,而且最好面对面讨论,让咨询师深入公司实际情况给出针对性回答。
从我的经验看来,你的这些问题之前可能还有更基础的一些问题没有解决:
1.过级目标不纯洁?公司为了过4级而过4级?
2.公司业务和技术等特点,决定公司无法形成稳定的过程,这样是不适合过4级的。
3.2、3级的基础没有打好,改进文化没有建设好,以前的过程实用性低等。
当然这些是我的猜测,不一定是对的。这也是我建议的要和咨询师讨论的原因,咨询师最熟悉你们的情况了,何况他们收了钱是要干活的。

 

以下是各问题的针对性解答,仅供参考。

 

A.关于流程、子流程、子子流程的问题

何为总流程,何为子流程,其实完全由自己来确定的。如何划分,建议不要从过级角度考虑,要从实用角度考虑,思考那些子流程对公司最重要,而不是选择哪些子流程最容易得到所谓的指标。
选择的子流程必须最符合公司的商业目标,这其实也是CMMI的要求来的,但当往往这些子流程要稳定,难度超高,很多公司会选择比较容易得到指标比较容易稳定的子过程,但这样违背了改进的初衷。


所谓子过程,有很多种划分办法,有人按阶段划分,而我以前的公司是按性质划分的。我们将工程类活动分为需求、设计、编码、测试、实施等几个子过程,这些工程活动其实从项目一开始到结束都是存在的,只是不同时期比重不太一样而已。绝大部分情况下,很多项目是不太可能完全瀑布型的,从时间上划分阶段可能是不合适的。
子过程要细到怎样的程度,得到的指标才有4级的价值呢?简单地说要保证数据的同类型、可比性,这个比较难解释,后面再补充说明。

 

B.关于组织级和项目级的区别在哪里

整个组织一个PPT里面包含各个项目的PPB情况,是否就是组织级的PPB呢?
回答:不是!


组织级的意思是,在组织范围内,性质、技术、业务、人员水平等相似的项目,它们整体的PPb是怎样的?
一个项目不太可能得到有效的40个或以上的度量数据,能形成基线。一般来说需要挑选相似的项目,用这些项目的数据来计算PPB。如果基线成立,那么就可以利用该基线来控制将来类似的项目。建立基线的目的就是为了对将来的项目进行控制,每个项目自己建立基线,各项目结束后基线就没有用了,更何况一个项目不太可能得到足够的数据点。

 

C.PPM部分,如何选择相关性指标?

回答这个问题,还是先要回到做4级的商业目标上来,选择标准绝对不是哪些容易做到就选择哪些,而是:从公司商业目标来选择重要的、关键的流程。


模型是比较难的,而且做出来往往是很不准确的,建议:
1.先选择一个比较重要的流程来尝试,例如可以考虑预测软件缺陷数量。
2.先从道理上想清楚输入是什么,输出是什么,做这个预测有什么实际价值。
3.拓展相关的数学知识,学习一些BI知识会对你很有帮助,关于BI可参考这两篇文章:
大话商业智能:http://www.cnblogs.com/umlonline/p/3357234.html
神奇的数据挖掘:http://www.cnblogs.com/umlonline/p/3359574.html
4.多尝试,一开始可能真的只能是“根据感觉”走,到后面会逐步提高认识的。


无论是PPB或是PPM,都不是几周能搞定的事情,折腾几个月到几年都是很正常的事情,往往第一批的尝试最后都需要推翻重来,不太可能一次就成功的。

 

问题D

是不是所有指标都做预测?
不是!只选择有价值的做预测。

使用回归方程做预测,那么已知的指标下周如何预测?
下周的Input是什么?从数学角度上说,如果你有下周的Input,自然就会有下周的Output,下周的Output就是预测值。
但问题往往不是数学问题这样简单的,如果你能说得更清楚就更好了。

PPM,一定要搞清楚Input是什么?Output是什么?为什么Input会得到Output(也就是所谓的方程了)?
回归分析只是用来分析Input与Output关系的一种模式而已,还可以用决策树、神经网络等其它BI方法,要拓展自己的数学思路。
还有一点其实很关键:要先从道理上想清楚,不要一下子就扎进数学的海洋中。

 

问题E

正态分布只是对原始数据的要求之一,其实保证数据的“同类性”才是最关键的,严格执行这个标准,你会发现实质上能满足要求的数据是很少很少的!我以前工程用所有项目的SPI和CPI来计算基线,结果就是没有保证数据的“同类性”,要重新来过!“同类性”就是要保证这些数据是在相似的情况下获得的,例如项目业务性质、技术性质、人员水平差不多的情况下得到的。

关于是否稳定的问题,在数学角度上可以用不稳定性测试,能通过这个测试就算稳定了,但要通过这个测试可不容易。过程其实很难稳定的,要想办法细化相应的过程,排除造成不稳定的因素,让过程稳定,这才是4级改进的核心任务之一。有一些公司为了所谓的稳定,搞一些数字游戏,在数学上看上去稳定,但道理上却说不通!

 

 

小结一下:


我说说当时我们公司是如何评估CMMI4、5级的:
被评估人员需要清晰且没有歧义的回答这些问题:
1.公司为什么选择这样的子过程,这些PPB和PPM对商业目标有什么帮助?
2.每个PPB和PPM对应的是什么子过程?
3.实际项目发生偏差时,可根据什么指引来消除偏差?
4.PPM有一定的合理范围,为什么会存在不合理的范围?
5.建立PPB和PPM的数据是怎样来的,如何保证“同类性”?
6.PPB和PPM的基本数学原理是怎样的?为什么要采用这样的数学方式?为什么采用这样的方式是合理的?


4、5级不只是数学问题,更多的是“道理”上的问题,这些东西都不是几天就能学习到的,还需要不断实践、总结、学习!
大家一起来加油吧!

 

 

 

 

作者:张传波

创新工场创业课堂(敏捷课程)讲师

软件研发管理资深顾问

CMMI首席专家

《火球——UML大战需求分析》作者

www.umlonline.org创办人