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),互斥段在一 ...
随机推荐
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 .NET Core 和 ASP.NET Core . ASP.NET Core已经内置了日志支持,可以 ...
- Apache+PHP 配置随笔
准备安装包 1:安装VC++ 2012(vcredist_x64,我这边服务器为64位) 2:Apache安装包,php安装包 安装后配置工作 1:安装Apache服务,配置环境变量 httpd -k ...
- C#编程总结(三)线程同步
C#编程总结(三)线程同步 在应用程序中使用多个线程的一个好处是每个线程都可以异步执行.对于 Windows 应用程序,耗时的任务可以在后台执行,而使应用程序窗口和控件保持响应.对于服务器应用程序,多 ...
- DatagramSocket收发UDP数据包
Java的Socket通信分为TCP和UDP两种,Socket和ServerSocket类用于TCP通信,DatagramSocket用于UDP通信. 使用DatagramSocket发送UDP数据包 ...
- Scalaz(3)- 基础篇:函数概括化-Generalizing Functions
Scalaz是个通用的函数式编程组件库.它提供的类型.函数组件都必须具有高度的概括性才能同时支持不同数据类型的操作.可以说,scalaz提供了一整套所有编程人员都需要的具有高度概括性的通用函数,它是通 ...
- ThinkCMF-幻灯片制作
在后台的扩展工具 -> 幻灯片分类 添加分类标识为"portal_index"的分类,然后在此分类添加幻灯片. 个人认为,此处可以用于: 1. 门户网站的首页幻灯片播放功能: ...
- iOS AFNetworking 打印从服务器返回的错误提示信息
每次做项目的时候都会在网络请求时候测试接口的时候会出现一些不同的错误,而控制台打印的错误提示信息都是data类型,看不出提示的错误的信息是什么.后面经过一些查阅发现其实是可以把这个转变为string的 ...
- 【转】定时自动启动任务crontab命令用法
每个操作系统都有它的自动定时启动程序的功能,Windows有它的任务计划,而Linux对应的功能是crontab. crontab简介 crontab命令常见于Unix和类Unix的操作系统之中,用于 ...
- MODIS批量处理软件MRT的安装说明
最近在处理遥感影像的时候遇见了MODIS影像数据,从中MOD13中提取NDVI是相当的重要.在一番的百度之中找到了处理modis影像的神器------MRT 接下来我来说明一下MRT的具体安装,如果之 ...
- Exif.js 读取图像的元数据
Exif.js 提供了 JavaScript 读取图像的原始数据的功能扩展,例如:拍照方向.相机设备型号.拍摄时间.ISO 感光度.GPS 地理位置等数据. 注意事项: EXIF 数据主要来自拍摄的照 ...