CMMI4级实践中的5个经典问题及解答
这五个问题相当经典而且比较深,需要做过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大战需求分析》作者
CMMI4级实践中的5个经典问题及解答的更多相关文章
- 实践中总结——理解haslayout和BFC
1.HASLAYOUT 首先,haslayout翻译成中文就是:有布局. 所谓布局,指的是一个元素可以对本身和里边的元素进行尺寸计算和定位.这里只是谈IE6/7,据说微软之所以不是对所有元素默认有布局 ...
- 你应当如何学习C++以及编程(细节是必要的,但不是重要的,把时间用在集中精力去解决问题,而不是学习新技术,那样练不成高手。在实践中提高才是最重要的。最最重要的内功还是长期学习所磨练出来的自学能力)good
最近在学习Qt但由于没有C++的基础,感觉学的很吃力.看到pongba的这篇文章感觉不错就弄过来了, 原文地址:http://blog.csdn.net/qter_wd007/article/deta ...
- 阿里巴巴 Kubernetes 应用管理实践中的经验与教训
作者 | 孙健波(阿里巴巴技术专家).赵钰莹 导读:云原生时代,Kubernetes 的重要性日益凸显.然而,大多数互联网公司在 Kubernetes 上的探索并非想象中顺利,Kubernetes 自 ...
- c#初学-多线程中lock用法的经典实例
本文转载自:http://www.cnblogs.com/promise-7/articles/2354077.html 一.Lock定义 lock 关键字可以用来确保代码块完成运行,而不会被 ...
- 记一次小团队Git实践(中)
对于初学者,从使用上先入手,往往学的最快,并从中汲取教训,再回头更深入的学习,效果尤佳. 安装git 安装git自不必说,mac已经内置了git,linux下一个命令就能搞定,windows下需要下载 ...
- 编程实践中C语言的一些常见细节
对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...
- line-height让文本在块级元素中居中显示总结
一.总结: line-height不仅可以用在段落文本中控制行与行之间的间距,还可以用来控制文本在li这种块级元素中的位置. 文本行间距的大小由字体的大小决定,行间距的大小的设置方法有5种方式:
- [英国][记录][战争中的世界:二战全史(26集)][BD-MKV/58G][中英双字][经典收藏]
[英国][记录][战争中的世界:二战全史(26集)][BD-MKV/58G][中英双字][经典收藏] 原片名:The World at War 中文名:战争中的世界 导 演:Ted Childs, ...
- 多线程中lock用法的经典实例
多线程中lock用法的经典实例 一.Lock定义 lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断.它可以把一段代码定义为互斥段(critical section),互斥段在一 ...
随机推荐
- SQL中 将同一个表中的A列更新到B列,B列更新到A列
有网友在SKYPE问及,如标题,SQL中 将同一个表中的A列更新到B列,B列更新到A列. 其实这个不是问题,直接写更新语句即可,可以参考下面动画演示: SQL source code: CREATE ...
- C#编程总结(一)序列化
C#编程总结(一)序列化 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数据. 几种序列化技术: 1) ...
- 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解
概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.调用API过程中参数的传递是必须的,本节就来谈谈 ...
- thinkphp端口配置
<?php return array( //'配置项'=>'配置值' 'MODULE_ALLOW_LIST' => array('Home'), 'DEFAULT_MODULE' = ...
- js操纵css更改加载图片大小
- 导入项目时Loading descriptor ...
最近导入了一个项目,始终在Loading descriptor ...,很长时间都没有结束. 这是Eclipse在从java.sun.com的服务器上下载配置文件,下载速度过慢导致的,其实配置文件不是 ...
- InfluxDB学习之InfluxDB的基本概念
InfluxDB与传统数据库在概念上有许多的不同,本文就给大家介绍下InfluxDB中的一些基本概念,更多InfluxDB详细教程请看:InfluxDB系列学习教程目录 InfluxDB技术交流群:5 ...
- CentOS6.5下安装PostgreSQL
一.配置 YUM 仓库 修改原始的 yum 仓库配置: vim /etc/yum.repos.d/CentOS-Base.repo 在[base]和[updates] 节(section)部分的尾部插 ...
- jenkins 邮件配置
jenkins 自带一个邮件的通知的功能,但是自带的邮件通知功能,有点简单不能自定义信息,所以我们安装邮件插件Email-ext plugin.1.首先在系统管理-插件管理-安装Email-ext p ...
- (3)JSTL的fn方法库
fn:functions,fn之所以称之为方法库,是因为fn使用不像core,fmt标签那样遵循<prefix:tagName>的格式,而是遵循fn:methodName()的格式 < ...