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),互斥段在一 ...
随机推荐
- 【转】Key/Value之王Memcached初探:一、掀起Memcached的盖头来
一.Memcached是何方神圣? 在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的HttpRuntim ...
- 【转载】[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类
关键代码: using System; using System.Collections; using System.Collections.Generic; using System.Compone ...
- 【转载】关于BooleanQuery在搜索中的用处
我们在搜索中可能会遇到要搜索索引文件中不同字段,不同字段之间就存在了与或非的运算关系,如:这个xx字段中必须存在什么什么关键词,而另一个 XXX字段可以存在或不存在什么什么关键词等等等.这就需要有Bo ...
- Android ADB 命令大全
1 cpu号: 文件在: /proc/cpuinfo 通过Adb shell 查看: adb shell cat /proc/cpuinfo 2 mac 地址 文件路径 /sys/class/net/ ...
- Visual Studio 2015正式企业(Enterprise)版
“7月20日 23:30 Visual Studio 2015正式版正式发布,作为微软新一代开发利器,在全地球乃至全宇宙乃至全太阳系中最强大 且没有之一的IDE(上述描述来自微博用户评论)跨平台支持成 ...
- jdk源码分析之ArrayList
ArrayList关键属性分析 ArrayList采用Object数组来存储数据 /** * The array buffer into which the elements of the Array ...
- SSH服务器与Android通信(2)--Android客户端接收数据
基本原理是Android客户端通过HttpClient向服务器发出请求,服务器向Android客户端返回JSON字符串,Android客户端解析JSON字符串获得数据. 1. 新建一个Android项 ...
- Junit很少出现的一个问题 No tests found matching ...
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=test2], {ExactMatcher:fDisp ...
- 低信噪比的HTML5优化
百度搜索引擎建议是我们的HTML文件最好不要超过128KB,其实现在对于那些大文件搜索引擎也是很容易就抓取到的,只不过我们是尽量在可能的情况下把我们的网页代码越精简越好,我们要知道搜索引擎抓取网页的时 ...
- Hadoop学习笔记1-如何简单布署hadoop
企业机型配置: 选型标准:普通的,廉价的,标准的(容易替换的),工业化大规模生产的 CPU:支持多核CPU,如2个4核CPU 内存:16G以上,内存越大,常用数据都缓存在内存,提高速度 硬盘:不需RA ...