思步网

标题: [连载] 09年中国首家过CMMI ML4的总结分享 [打印本页]

作者: lanj    时间: 2009-7-3 16:30
标题: [连载] 09年中国首家过CMMI ML4的总结分享
其实做完cmmi以后想想好像也没什么可讲的,所以一直拖到现在也没有做个详细的总结。 我们公司从去年开始就打算做四级了,本来打算去年10月份评审的,但是由于出了1.2A所以延迟。简单的来说,个人觉得,四级就是要把之前三级以前收集的数据进行汇总分析。
其实在三级的时候,或者说一般的软件公司,已经有相关的数据,只是没有系统的进行收集和分析,比如说缺陷个数,系统规模,模块规模,开发时间等等。很多时候,这个一般的员工没有去收集和分析,领导看来也只是认为项目不停的在加班,在延期,人手不足,项目的bug数一直降不下来,项目款项收不回来,可是没有仔细的去分析这些数据。
我们在做四级的时候,开始一段时间也是在培训,看资料,同时注意收集数据,评估师在开始做四级的时候,把cmmi的知识培训了一遍,然后重点告诉我们四级侧重的就是数据的分析,然后指导并引导我们的思维去发现需要收集哪些数据。比如对于一个项目,一般的人员都会说可能涉及的数据是开发的时间(周期),开发人员,测试的时间,发现的缺陷数等等。其实这些就是数据,但是我们没有看到内在的联系,以及其他潜在的数据,比如说开发人员,我们是否想放到过开发人员的水平,这其实是个很重要因素。人员水平是不是和人员个数成正比,或者说对项目而言是不是人越多越好

我想学过数学的人应该都知道,其实是有个临界点的。 就像抛物线或者是一般的曲线,都有个拐点,达到这个拐点可能是最佳或者是最差的情况,四级就是在收集的这些数据的基础上,对数据进行分析,找到适合我们项目和我们公司的最佳的一个组合。 这就需要建立数学模型,画出直接的图形,能直观和透彻的进行说明,这样的东西才有说服力,才能让研发人员和项目经理乃至公司高层相信,我们的公司要根据这样的组合才能达到最佳。四级的精华也就在此,cmmi检查的也就是一个公司是否达到四级,有哪些数据和分析,说明他们达到了,说明他们在不断的改进和提升。
作者: 漂在生活    时间: 2009-7-6 09:05
恭喜拿第一,楼主继续。期待中...
作者: lanj    时间: 2009-7-7 08:17
当然,同样要强调的就是,这些东西不是仅仅是QA SEPG成员知道就行的,要求所有研发人员都知道,这就是培训的问题,中国很多的公司,做CMMI,可以说是就是质量部,或者QA来完成的,QA把所有的东西准备好了,然后评审,真正意义上的,或者说严格意义上是需要全员掌握的。QA是一个职能岗位,要做到上通下达,你的工作不是你一个人就能完成的,是需要各部门配合的。当然有些工作,很多时候可能就是QA做了,比如说数据收集
以及开始的建立模型等等,因为参加培训的只是少部分人,而且研发人员也不可能整天在忙这个。所以QA在做一些工作的时候,需要将自己的成果通过培训或者会议的方式传达个各研发人员,让别人知道你在做什么,你做的东西有什么用。
在收集的数据以后,我们需要筛选,比如说,我们发现影响系统缺陷数增加的因素很5个,那我们要分析,哪些是可用的,哪些是不需要的,或者说影响比较少,不需要的。同时要注意,如果有相关性很强的两组数据是否可以同时作为参考,会不会影响到今后的建立模型。比如说,我们从A地到B地1000米的话,我们走路需要30分钟,但是我们打的的话,只需要10分钟,但是要花30块钱,这就可以建立一个简单的数学模型。但是10分钟和30块钱,在这里是相关性很强的两个数据,我们需要考虑是否只要取一个数据就行,这是个简单的例子。
再比如刚才提到的研发人员水平和研发人员个数,当我们建立模型的时候,我们取的数据比如说是人员水平的一个累加,那我们可以考虑不用人员个数这个因素,因为这两个是有直接关联的。当我们发现影响缺陷数的因素有1个时候,我们可以建立,一元线性方程,如果有多个的时候,我们就可以建立多元线性方程。比如说,我们发现这个系统有5个bug,花费了10个小时的开发时间,4个人参加,人员的水平累计是12,系统的规模是1000行
那么我们的模型可以是Y=10X1+4X2+1000X3.....
通过类似这种方法,通过一些统计软件和分析工具,可以建立起一个多元线性模型。当然,这个只是第一步,就是你知道应该通过这些数据的分析,找到他们的联系,但是这些x因素是不是真的确实可行,对y的影响是不是能起到作用,这个是需要进一步分析的,而不是光凭表明观察可以看出来的。
这个时候我们会用到回归分析。x间关系、y和x关系的分析,来对x进行选择,从而找出真正能对y起到决定影响的x。比如说y=ax1+bx2+cx3+e 其中x1 x2 x3和y的关系是不一样的,可能a=0.6 b=0.3 c=0.,那这样我们可以看出,X1对y的影响更明显。回归分析,在我们使用的excel表格中就有,可以简单的得出我们需要的一个线性方程
作者: china_breezy    时间: 2009-7-7 09:52
mark,继续关注
作者: psli1983    时间: 2009-7-7 11:46
继续关注,期待中。。。。
作者: lanj    时间: 2009-7-8 12:54
我们用历史数据得出模型,可以作为我们项目级或者组织级的模型
比如说,我们得到的模型是根据公司所有项目的数据得到的一个模型
这个建立的就是我们公司PPB。ppb=project process baseline 这样就得出了我们组织级/项目级的一个基线。
对这个基线我们进行分析,里面的数据是否是最佳的,是否能够进行改进,比如我们通过什么方法可以减少开发时间,如果把开发时间达到一个较好的水平,那我们的模型是不是会发生变动,在ppb的时候,我们有散点图,可以得到一个曲线,在这个曲线上我们可以看出那个是最佳的值,也就是之前提到的“拐点”。如果我们对数据改进以后,这个最佳值会发生变动,曲线也会发生变动,从而有改进以后的模型,就是我们的ppo,ppo=project process object 。
这其中就有三个步骤,建立ppb,进行psp改进,得到ppo ,这是这个阶段我们项目级/组织级的一个标准。 之后我们的项目,根据这个标准,根据模型来控制我们的活动。在有新项目或者新数据以后,我们把我们的新数据增加进原先模型,进行改进,发现是否会建立一个更完美的模型,这样就会建立新的ppb,从而有新的ppo。
通过这样的活动,我们的模型会变得越来越好,我们的ppb和ppo的区间会变得越来越窄,我们的过程也就越来越稳定。
sei要看的就是你在不断的改进公司的模型,过程不断的稳定,这就是四级要达到的效果。
作者: 漂在生活    时间: 2009-7-8 17:03
其实,我更关注的不是为了过4级而过4级,而是你们在过了4级后,在员工的日常作业过程中,对于工作质量等的提高上,有没有一些明显的加分?

希望你也能分享分享。。。
作者: 飞泉流水    时间: 2009-7-8 22:02
希望能和LZ多交流!
作者: lanj    时间: 2009-7-9 13:54
如果能按照CMMI的要求,一步步的执行,对项目的执行肯定是有帮助的。例如我们建立了一个工作量的模型,知道了我们项目一般的开发周期是多长时间,我们的项目经理在开始做项目计划的时候,就会以这个为标准,进行制定计划,安排人员。在项目开发过程中再不断的检查和比对我们的PPB,从而提高项目的开发效率,降低开发成本。
作者: psli1983    时间: 2009-7-14 10:45
想问楼主:能不能提前介绍下QPM是怎么做的?
作者: 兮若    时间: 2009-7-14 15:20
我对PPB=project process baselin有点疑问
我们说PPB是指过程能力基线,一般是说组织级建立过程能力基线
为何在您的文章中说是得到的项目级基线?
项目级的基线是如何得到的?又有什么用?

6# lanj
作者: lanj    时间: 2009-7-15 13:45
其实概念是一样的,可能我们和你们的表述方法不一样而已。
至于你说的项目级的基线如何得到,我在上面的文章里面已经提到,你可以看下。
其实是生成组织级或者项目级的基线,这个是根据各位自己公司的需要的,比如我们公司,项目总的情况是一样的,但是又分几大类,所以就分别由项目级和组织级的。如果一个公司只做一类产品,那么只有组织级的基线就行了。
当我们每隔一段时间对我们的基线进行更新的时候,我们就能发现我们的项目改进情况,整个公司的改进情况。
作者: lanj    时间: 2009-7-20 13:15
好久没码字了,被人说了~~
作者: lanj    时间: 2009-7-20 15:51
现在说下数据收集这块
数据收集其实很多之前做过CMMI的公司我相信都有在做,数据的收集对于cmmi来说非常的重要,我们需要通过“数据”来说话,所谓的“有据可查”。
在数据收集之前,我们要先确定我们需要哪些数据?这可以通过倒退的方法来考虑。比如说我们需要的是对缺陷率的分析,那可能涉及到数据就有代码行数,模块规模,开发人员的数量,开发的环境,开发的工具.....将这些可能影响到缺陷率的因素都罗列出来。然后对这些因素进行分析,有些是有直接影响的,有些是有间接影响的。我们需要找出对缺陷率影响最大的几个备选因素。这个过程,可以通过一个图标的方式进行,这样会更加直观和明确,也不会出现遗漏。
在找到相关因素以后,我们开始对数据进行收集。在收集的时候,我们要考虑我们项目的情况,比如说我们是要收集项目的数据,还是组织级的数据。如果是项目的数据,那我们的小项就应该是各个模块的数据,如果是组织级的数据,那就是各个项目的数据。不同类型的数据得出的是不同类型的模型。在数据收集的时候,我们同样要注意,我们是否可以考虑把模块/项目规模大小相近的数据放在一起进行分析,或者是相似产品的数据,这样得出的模型更有说服力。(同时要注意,根据一般电脑统计软件的规则,我们一般要求数据不少于15组或者一定组数的要求。)如果没有足够的组数,我们可以考虑几个类似的项目模块放在一起进行分析。
同时在数据收集的时候,要注意相关的格式要统一,比如统一使用每千行,或者是每行,开发时间是采购小时或者分钟。这些细致的问题也不能忽略。
数据收集的过程,很多时候是基于原先的基础,如果一个公司之前没有对任何数据进行收集,那要对数据进行分析的话,工作量就会非常的大。所以我们尽量考虑用我们目前可能收集到的数据,或者是便于取得的数据,当然也可以重新进行收集,但是这样收集起来的数据,可能有时效性比较差等问题会出现。
作者: lanj    时间: 2009-7-20 16:02
数据这块,是CMMI-4的基础,我们要得到模型就必须有足够的数据,而且这些数据能足以说明问题,否则我们得到的模型没有足够的说服力。
如果不是做CMMI-4,其实对数据这块同样也不能忽略,对于一个软件公司而言,很多东西就蕴含在数据中,我们可以通过数据来直观的表示一个项目是否延期,工作效率怎么样,有多少个bug,产品质量如何。
作者: lanj    时间: 2009-7-20 16:20
补充一点,就是刚才最先提到的,我们对我们要建立的模型收集数据,有些人可能会问:我们需要建立哪些模型呢?这也是一个需要关注的地方。一般而言,我们知道我们需要对公司影响较大的过程建立模型,但是如何表明这个过程就是特别需要关注的呢?这就要依赖我们的公司商业目标,也就是我们常说的BGS。所以在建立模型的最初,我们需要对我们公司的BGS进行分析,对我们的BGS进行细分。尽量能细分到涉及到那些数据。比如研发部部门的目标进行一步步细分,根绝这样,我们就能知道我们公司需要建立那些模型能对我们公司的过程进行到监控和改进,哪些过程的改进是对我们公司的目标有着重大影响的。
这是一个很重要也是一个基础的环节。
作者: 漂在生活    时间: 2009-7-21 12:13
好久没码字了,被人说了~~
lanj 发表于 2009-7-20 13:15


我不是有意的。:handshake
作者: lanj    时间: 2009-7-21 13:06
昨天说到数据收集,今天说下分析。
作者: lanj    时间: 2009-7-21 13:20
在对数据进行分析的时候,很多工具可以被我们所使用。其实不用把建立模型想像的过于复杂,其实简单而言就是列方程,一元方程,二元方程,多元方程......这些我们中学设置小学的时候就已经做过了。
我们将前面提到的数据收集起来以后,用表格的形式列好,一般都是用excel表格。简单的分析,我们用excel就能做。在excel表格中,点击“工具”-数据分析即可。如果没有“数据分析”这个模块,可能是当时在安装office的时候安装的是精简版,这种情况重新加载宏即可。在数据分析这个模块里面有一些excel自带的分析工具,比如回归分析。在对我们收集到的数据进行分析的时候,就用的到回归分析。
可能有人会问为什么要用这个工具呢,其实很简单,我们昨天提到我们将对结果有影响的因素进行了收集,可能我们发现有10个因素,可是是否这10个因素都是能用来建立模型的呢?这就要用到回归分析的方法,用回归分析,我们可以验证各个因素与结果的关系,简单来说就是Y与X的关系。在通过电脑自动计算后我们可以建立一个简单的模型,即y=ax1+bx2+cx3+....+E,这就是我们的一个多元线性方程。同时还能看到一个R方值,这个值是表明,方程成立的概率有多大,也就是我们简单的说的95%或者99%的置信区间。
作者: lanj    时间: 2009-7-21 13:24
说道置信区间,可能很多人都有印象,因为初中学过。在cmmi模型里面,也有一个相关的数据就是6sigma值。在现实世界里面,我们很难使得事情能百分百的得到满足,就像我们生产一个螺帽,可能会出现瑕疵品,这是很正常的,但是我们同样是可以对我们的过程进行控制,比如我们要求我们的合格率达到95%或者99%,这就是数学概念里面的置信区间。
作者: lanj    时间: 2009-7-21 13:27
我们在建立模型的时候也有个可行性要求,具体就在R方的大小,如果R方能达到95%以上,我们就能说明我们的模型是可行的,太低显然是不行的,也没有任何意义的。
通过excel表格,我们能够简单的得到一个模型,这个可以说是分析的第一部分,从分析的结果我们看出哪个X对Y的影响最大,哪个影响最小,有了一个初步的判断,从而也可以验证我们之前的假设,看是不是像我们想的那样,代码规模对缺陷率影响是最大的,而人员水平是最小的等等~~
作者: sngmd    时间: 2009-7-21 14:43
楼主是上海的吧?
作者: lanj    时间: 2009-7-22 13:09
不是,在杭州
作者: lanj    时间: 2009-7-22 13:12
说到数据分析的工具,前面说的是excel自带的。同时还可以使用SPC工具,minitab等6sigma工具,这些是基本而且相对简单的工具,比较容易操作上手。
作者: lanj    时间: 2009-7-22 13:15
spc工具,如果接触过的应该知道,可以用xmr图、uz图等,还有就是假设检验。
其实不用吧分析工具想像的太复杂,很多时候我们可能只是用来他们其中那个一个方面,如果能全部利用起来,那估计可以达到专家的级别了。
spc工具,是我们评估师提供给我们的。minitab之类的,在网上能下载到,以后中文版的,也有相关的操作手册,可以自学。
作者: lanj    时间: 2009-7-22 13:25
spc和minitab之类工具,主要是计算一个6sigma值,简单来说就是一个区间,比如说我们的缺陷率是控制在每千行2-3个之间,那每千行2个就是上限,每千行3个就是下限,也就是UCL LCL,均值就是CL
作者: 漂在生活    时间: 2009-7-22 15:56
excel本身就有很大的统计功能,用好了excel,完全可以实现统计的需求。
作者: qicai2002    时间: 2009-7-22 16:43
很好    谢谢 分享
作者: lanj    时间: 2009-7-27 10:19
下午说下ppb,ppo
作者: 漂在生活    时间: 2009-7-28 12:28
go on. 楼主MM
作者: lanj    时间: 2009-7-29 13:01
网页好像有问题,总是打不开
作者: lanj    时间: 2009-7-29 13:39
本帖最后由 lanj 于 2009-7-29 14:01 编辑

在OPP的SP1.2和SP1.3、SP1.4中提到了要建立过程的度量,PPB,PPO。
在SP1.3中提到,要建立ppo(process performance object),组织过程的性能和质量是通过计算出来的,而不是我们制定出来的,需要计算,就需要有数据,就是上面提到的数据收集的问题哦。有了数据,下一步就是如何得到我们的ppo。首先我们需要确定我们的商业目标,其次使用bgs来分析目标,第三是对我们分析得到的目标进行排序、评审,第四在我们的流程中确定什么时候更新我们的ppo,第五步就是要判断更新后的ppo是不是比之前的更好,这个过程需要进行保存。
那么建立和计算ppo需要哪些人参加呢?一般我们认为需要高级经理和开发人员参与其中。
建立ppo需要注意哪些东西呢:
1、需要能对应到商业目标
2、需要是量化的数据,比如说范围什么是?
3、需要能说明某个数据的来源,比如是什么时候在哪个环节产生的
4、需要有足够的数据(这些是根据不同的统计方法)
5、对历史数据要进行分析,了解这些数据用于建立PPM建立的意义是多少
作者: lanj    时间: 2009-7-29 13:53
SP1.4是建立PPB(process performance baseline)
在建立ppb的时候之前提过可以考虑建立组织级或者项目级的PPB。建立的PPB,我们需要将PPB和ppo进行对比,我们可以通过假设检验的方法进行检验对比。
建立PPB是个关键的步骤,我们要注意一下几点:
1、ppb不是配置管理的基线,而是一个结果。
2、ppb可以是一个控制图,比如pareto图、频率分布图
3、ppb是个基准,如果没有足够的数据,可能我们之前认为是正常的点后来变成异常点
4、PPB要足够的稳定,如果不稳定,那么PPO也不稳定最后的结果就没有任务意义
作者: lanj    时间: 2009-7-29 13:58
有人会问我们需要多少的数据才能说明我们的PPB已经足够稳定了呢?这就需要考虑几个问题:频率多不多,会有多少人进行流转已经我们的经验。至于数据的多少,spc工具和其他统计工具对数据有要求,比如XMR图,要求数据是有时间顺序的,数据在5-20个时,ppb的可用性是20%-40%,数据在20-35个时,XMR可以作为参考,数据在42个以上,XMR可以用。
作者: lanj    时间: 2009-7-29 14:00
建立ppb要求:
1、子流程要文档化,有流程图
2、历史数据,要能说明来源
3、对数据进行分析,是否有意义
4、与以前的PPB和PPO对比,刚才提到的假设检验的方法进行对比
5、保留PPB的历史数据和SPC工具,要有相关的版本记录
作者: lanj    时间: 2009-7-29 14:06
再说下PPB和PPO的对比,除了使用假设检验的方法以外,我们还可以用一个标准来进行评价,就是CPK,也就是通常所说的CPK检验。
CPK检验是通过计算的方法获得的,但我们知道PPO和PPB的范围以后就能进行计算
CPK=min(ppo的USL-ppb的CL/3sigma,ppb的CL-ppo的LSL/3sigma),CPK最小为1,如果CPK=2那说明在PPB范围的异常点也在PPO的范围内
作者: lanj    时间: 2009-7-30 08:51
{:8_306:} {:8_307:}
作者: 志存高远    时间: 2009-7-30 12:25
哇,最终全部看完了,楼主真厉害啊。
作者: lanj    时间: 2009-7-30 13:19
说下PPO和PPB的关系
作者: lanj    时间: 2009-7-30 13:22
ppo的数据来源于ppb,ppb是原先的数据,ppo是更改后的数据。
公司级的ppb和ppo可以来自于各个项目的ppb和ppo,项目级的ppb和ppo的数据同时也应该进行保留,每个项目的ppb都有自己的spc和报告,ppo也同样如此。
一个项目的ppb和ppo是由项目组成员一起完成的,在项目进行uoczong,应该对ppo进行改进、统计,对异常点进行分析和纠正,并在项目改进中进行计划,当异常点得到改进后,应该将这个异常点去除掉。
作者: lanj    时间: 2009-7-30 13:30
根据项目的ppb和ppo,形成组织级的PPB和PPO,用组织级的PPB和PPO形成新的项目级的ppb和ppo。
经过改进后又有新的项目级的ppb和ppo。
所以我们的基线并不是一成不变的,可以根据每个公司自身的特点,定期的检查和更新基线,比如一个季度或者一个月。
作者: lanj    时间: 2009-7-30 13:38
说下假设检验,之前提到过用假设检验的方法来检验我们新的模型是否适用。所以在做假设检验之前,我们必须先定下一个目标,是让我们新的模型比原先的模型质量更好,还是需要新的模型能比原先的模型找出更多的问题,定下这个目标,才能在用假设检验的时候进行判断。
在假设检验的时候,需要用到置信区间,因为我们要使我们的模型的95%数值是优于原先模型才能确认新的模型是可用的。置信区间的值可以由自己决定,一般为95%和99%
作者: lanj    时间: 2009-7-30 13:40
突然发现自己写的很乱,大家别介意啊,凑合的看下{:8_307:}
作者: lanj    时间: 2009-8-3 10:12
{:8_307:} {:8_307:}
作者: lanj    时间: 2009-8-5 14:52
感冒了,还发烧,{:8_314:}
作者: lanj    时间: 2009-8-11 15:58
{:8_307:}
作者: lanj    时间: 2009-8-11 16:12
好不容易进来了
作者: lanj    时间: 2009-8-11 16:18
昨天和我们的评估师讨论了下P-value的问题。这边整理下。
作者: lanj    时间: 2009-8-11 16:21
昨天在看回归分析的时候,发现我们当时要求R方是多少,P-value是多少,可是却没有太在意p-value的意义。所以昨天特别和咨询师聊了下p-value的问题。
作者: lanj    时间: 2009-8-11 16:23
本帖最后由 lanj 于 2009-8-11 16:25 编辑

在用回归分析的时候,我们会得到一组数据,比如说
回归统计        
Multiple R        0.985721803
R Square        0.971647474
Adjusted R Square        0.967736781
标准误差        3.082411287
观测值        34

             Coefficients       标准误差         t Stat         P-value      
            76.91557816        4.356610836      17.65491136       4.68244E-17        
X1        0.006684388        0.000711317      9.397193428       2.65296E-10        
X2         1.683856263       0.733388439      2.2959951           0.029094862      
X3        -2.977707438      1.082453153       -2.750888045      0.010133432      
X4         3.576085182      1.062133854       3.366887488        0.002158691
作者: lanj    时间: 2009-8-11 16:31
我们通过看R Square和Adjusted R Square,可以来判断我们建立的方程/模型的可用性,一般情况下,如果是一元线性回归,我们看R方,如果是多元线性回归,我们看的是调整R方。上面的案例,我们可以看出,是个多元线性回归,调整R方是0.67736781。那这个线性方程的可用性是96.8%,是可用性非常高的一个方程。
根据Coefficients值,我们可以知道我们的方程是Y=0.006684388*X1+1.683856263 *X2+( -2.977707438)*X3+3.576085182*X4+76.91557816 这就是我们的方程。那P-Value又是什么呢?我们要求P-value的值小于0.05,而且越小越好,可是为什么要越小越好呢?这就是我昨天问咨询师的问题。
作者: lanj    时间: 2009-8-11 16:37
其实P-value值应该说是cofficients值的一个可用性的大小,某种程度上相当于R方的作用。
因为我们在建立模型的过程中,cofficients的值是有多个,系统自动得出的是一个最佳的情况,比如X1的系数其实并不止有0.006684388,它还有其他的可能,只是0.006684388这个值它P-Value值最小<=0.05,所以才取这个值,经过组合就成了我们上面所列的方程。
同样如果会假设检验的朋友,也会发现会有一个P-value值存在。其实这里的P-value的概念是一样,就是假设是否成立的一个可能性。
作者: 漂在生活    时间: 2009-8-12 09:11
JJ,我来捧场。。。要把这个主题打造成优秀的主题!!!
作者: lanj    时间: 2009-8-13 14:11
{:8_309:}优秀主题,不用这么夸张吧
我已经觉得自己写的很差了,你这样我会更惭愧的{:8_306:}
作者: 思步    时间: 2009-8-13 14:41
表谦虚嘛。
好东西是要被肯定的,哈!:118)
作者: psli1983    时间: 2009-8-13 14:50
54# lanj
支持下 继续写下去~
作者: lanj    时间: 2009-8-18 13:33
继续回归分析
回归分析估计是线性方程里面比较基础的一个内容,但是却能直接有效的帮助我们识别方程,所以可用性还是非常强的。
可是回归分析得到的方程有时并不是一个PPM,因为这个方程可能对应的是整个项目而不是某个流程,也可能方程中没有可控因素,从而不能进行控制。
作者: lanj    时间: 2009-8-18 13:38
那么如何利用回归风行数据和图表来进行控制呢:
1、可以根据比值,比如y与x的比值,例如规模和时间,比值就是每小时的代码生产率
2、将我们得到的比值放入到我们的控制图中进行分析,当然要注意不同类型的图表对数据的要求,比如XMR图是要求数据有时间上的连续性。
3、对我们得到的控制图进行设置,看看我们是要指数形式还是对数形式的图形
4、根据图形我们可以得到我们的一个“最佳值”
5、找出我们的异常点
6、对异常点进行分析、去除
7、对异常点改进,对流程进行改进,相关的资料要进行保留
作者: lanj    时间: 2009-8-18 13:42
另外说下残差
简单来说残差就是实际的y值与模型得到的y值(预测值)的偏差。
在对残差分析的时候我们会发现,最理想的状况是残差为0,就是我们的实际值和我们的预测值是完全吻合的,但是这种情况微乎其微。同时如果残差是负值,或者数值非常的小,我们可以通过对残差进行平方的方法使得数据更加明显。
如果我们的残差也是按照一定时间顺序排列的,那我们也可以用xmr图来进行分析,找出异常点。
如果数据是比较稳定的,我们可以用中值图来分析,如果不稳定,我们可以用平均值来分析。
作者: lanj    时间: 2009-8-18 13:48
另外说下我们在CMMI四级中用到的一些工具,我觉得非常的不错。
Crystalball(水晶球)、SPSS工具、PHSTAT工具、minitab工具,还有6sigma工具。
这些工具都能满足一般我们工作中的需要。其中6Sigma工具是和minitab相类似的,应该说是minitab的中文版才对,实用性也不错。
Crystalball也非常有效,它能够帮助我们进行数据的分析、预测。
SPSS工具,在对数据的相关性分析、自相关分析上和控制图制作上也不错,但是控制图制作可能没有minitab和6sigma,spc工具一样全面。
Phstat也是个很不错的工具。
这些工具在我们过级中都有使用,大家可以了解下,找到你们所需要的。
作者: lanj    时间: 2009-8-18 14:07
借用一个朋友的
多元线性回归模型与一元线性回归模型一样,在计算出回归模型之后,要对模型进行各种检验。检验方法有:判定系数检验(R检验),回归系数显著性检验(T检验),回归方程显著性检验(F检验)。
1)        判定系数检验。多元线性回归模型判定系数的定义与一元线性回归分析类似。判定系数R的计算公式为: R = R接近于1表明Y与X1, X2 ,…, Xk之间的线性关系程度密切;R接近于0表明Y与X1, X2 ,…, Xk之间的线性关系程度不密切。
2)        回归系数显著性检验。在多元回归分析中,回归系数显著性检验是检验模型中每个自变量与因变量之间的线性关系是否显著。显著性检验是通过计算各回归系数的t检验值进行的。回归系数的t检验值 的计算公式为:= (j = 1,2,…,k),式中 是回归系数 的标准差。在多元回归模型中,某个变量回归系数的t检验没有通过,说明该变量与因变量之间不存在显著的线性相关关系,在回归分析时就可以将该变量删去,或者根据情况作适当的调整,而后用剩下的自变量再进行回归分析。
3)        回归方程的显著性检验。回归方程的显著性检验是检验所有自变量作为一个整体与因变量之间是否有显著的线性相关关系。显著性检验是通过F检验进行的。F检验值的计算公式是:F(k ,n-k-1)= 多元回归方程的显著性检验与一元回归方程类似,在此也不再赘述。回归方程的显著性检验未通过可能是选择自变量时漏掉了重要的影响因素,或者是自变量与因变量间的关系是非线性的,应重新建立预测模型。
作者: 思步    时间: 2009-8-19 17:11
真是身临其境啊。 楼主能否再建立一个专门讲度量的专题不?
作者: 夕草荷露    时间: 2009-8-20 17:26
额,看着那天你在写这东西,啊哈哈
作者: xinxijie531    时间: 2009-8-25 12:57
分析得很好,很有借鉴意义.
学习了哈.
谢谢.
作者: lanj    时间: 2009-9-1 16:20
不好意思,好久没更新了,最近在翻译crystalball的操作手册。顺便学习VBA函数,所以没及时更新,大家见谅。
我会慢慢更新的,不会把坑弄太深的{:8_307:}
作者: lanj    时间: 2009-9-1 16:22
之前说的是Excel的回归分析,现在简单介绍下crystalball(水晶球)软件。
作者: lanj    时间: 2009-9-1 16:23
其实,我也没怎么深入的掌握,但是就这些基本的东西,初学下来,也觉得受益匪浅,而且是统计分析的一个很好的工具,这边就简单介绍下,有兴趣的朋友可以自己深入学习下。
作者: lanj    时间: 2009-9-1 16:28
crystalball,按字面意思我们也知道,是水晶球,就像巫师手中的水晶球一样,可以看到现在,预测未来。看来这点好像全世界都这样,中国有神婆,老外有巫师,哈哈~~
crystalball,分为两大块,一个是预测,一个是模拟分析。
所谓预测,就是在给出一些历史数据的基础上,对未来可能产生的数据进行预测。crystalball在预测上又分为两种情况,一种是时间序列的预测,另外一种是回归分析预测。时间序列是要求历史数据有一定的周期性,比如日、月、年等等,工具会根据之前周期的情况,分析以后几个周期的情况。这个用处很广,比如普通的销售量之类的,我们可以根据前几个月或者几个季度的情况来预测以后几个月的销售情况,这样对企业制定目标,成本管理以及未来规划都十分有效。
作者: lanj    时间: 2009-9-1 16:32
还有种预测,是回归分析预测,就是之前提到的,可能一个数据受到其他多个数据的影响,这也可以用crystalball来分析的。设置好自变量和因变量以后,工具也会对数据的未来情况进行一个预测。

crystalball的功能还是很强大的,你可以用工具查看当前/历史数据的情况,比如说趋势,也会给出数据可以达到的最佳值的情况。同时在预测的时候它也会提供预测出的未来数据的一个发展趋势,最佳值,甚至置信区间。而且crystalball还会自动生成相应的完整的图表、报告等。所以,一个crystalball有时候可以帮你完成一个浩大的预测分析报告。
作者: lanj    时间: 2009-9-1 16:34
再说下crystalball的模拟功能。
crystalball可以根据之前你给定的数据,在这些数据的基础上进行模拟分析,比如说运行500次,甚至更才的周期数据的一个发展情况,同时也会给出相应的图形等等,根据这样的模拟我们就可以知道,在原来历史数据的基础上,我们如果要得到新的数据产生的可能性是多高的,从而可以佐证我们的模型的可信度。
作者: lanj    时间: 2009-9-1 16:36
本帖最后由 lanj 于 2009-9-1 16:39 编辑

发几张之前我们做到模拟运算给大家看看,对了crystalball有多种模拟方法,常用的是蒙特卡洛模拟分析。

未命名.jpg (48.39 KB, 下载次数: 81)

未命名.jpg

作者: lanj    时间: 2009-9-1 16:44
上面的图可以看出,我们设定运行了100000次,其中99924次运算成功,得到的每小时编码效率的一个图表。在这个图表中,每小时编码是在35行以上,如果我们设定一个区间,比如35-50,这样中间的certly会显示一个百分比,就是这个区间可能实现的一个概率。
再找个图给大家看看:

未命名2.jpg (46.63 KB, 下载次数: 73)

未命名2.jpg

作者: lanj    时间: 2009-9-1 16:46
在第二张表里面我们可以看出,如果我们的源代码审批发现的缺陷数在每行0.0003个(即千行0.3个),成功的概率是28.428%.......
作者: lanj    时间: 2009-9-1 16:48
crystalball主要就这两大块的功能,上面说的可能比较简单,有兴趣的朋友可以自己再研究下。
在CMMI中,我们可以用crystalball来对我们的数据进行预测,对我们的模型进行模拟运算,这样我们就能证明我们的数据和模型的可信度是多高,如果要通过SEI的检查,也就简单了很多。

呵呵,希望对大家有用~!{:8_311:}
作者: goneinwind    时间: 2009-9-1 16:56
呵呵,我关心的是你们公司过完级以后,真的让CMMI在工作中变成了常态吗?还是过级归过级,实际归实际?
作者: lanj    时间: 2009-9-1 17:09
75# goneinwind

都在用,对原来的模型每季度进行更新,同时也在想新的模型~!{:8_307:}
作者: winddown    时间: 2009-9-1 23:26
Crystal Ball就是一个模拟分析工具,通过对影响因素的可知分布的模拟,预测一定算法的目标分布。
默认是采用蒙特卡洛模拟分析方法。

不论是CB Predictor时间序列、还是OptQuest,还是在Excel简单的预测目标单元格的分布,都是采用模拟。

模拟是它的方法,预测是使用它的目的。
作者: scottwang    时间: 2009-9-7 08:32
继续关注,期待中。。。。
作者: 漂在生活    时间: 2009-9-7 10:26
楼主啥时候结帖啊? 期待新开一个主题,哈哈。
作者: lanj    时间: 2009-9-7 14:33
听这意思,我好像应该马上结贴了,正合我意啊(哎呀,不小心说出心里话了{:8_315:})
作者: lanj    时间: 2009-9-7 14:37
其实说实话,也想结贴了,只怪自己学艺不精,表达能力又不行,写出来的东西不是很好,有时候真感觉挺对不起大家的,所以我决定今天结贴。{:8_307:}
作者: lanj    时间: 2009-9-7 14:46
从开贴到现在,把我们公司在CMMI4级的过程和中间出现的问题,已经相关的一些经验做了个简单的介绍(貌似真的很简单~~),最后再提一下,就是在最后的评估阶段。在评估前,除了硬件准备之前,还需要能有专门用户评估的服务器,将相关评估的文档和项目资料放在服务器上,评估组成员的网络要调通(最起码要能连接评估服务器)。第二在评审期间,时间安排也很重要,我们评估的时候出现个问题,就是因为刚好是年中,项目多的时候,很多项目经理和研发人员都在出差,所以在访谈人员安排上面出现了点问题,让场面看起来有点“空”。如果能合理一点安排,使得评估更加紧凑一点,这样的话,在评估的时候不会冷场,我们有几次上午都在看文档,没有访谈,有几天又忙得要命,这点需要能合理安排下。第三,就是访谈的时候,人员搭配要合理一点,不怎么说话的和比较健谈的要错开搭配,别搞得一组人一句话都不说,一组人又十分健谈,这样也不好,我们评审的时候有些开发人员整个流程都很清楚,就是不喜欢说话,让我们几个人干瞪眼啊~~
作者: lanj    时间: 2009-9-7 14:47
OK,就这些吧。
本人正式宣布,该贴结贴了,哈哈~~~{:8_311:}
作者: hiwzg    时间: 2009-9-25 00:09
呵呵,恭喜恭喜!
从楼主的回答,看得出来,通过实施cmmi4级,特别是在量化管理上面有收获。

很好,期待有后续精彩总结。
作者: jiayan2000cn    时间: 2009-10-11 10:12
ML4是在做数据的分析,来建立绩效的基线和模型!
作者: jiayan2000cn    时间: 2009-10-11 10:13
不过你们做V1.2a吗,为什么会因为V1.2a延迟呢?
作者: 邦邦    时间: 2009-10-27 10:49
本帖最后由 邦邦 于 2009-10-27 10:53 编辑

学习了。对这些工具比较感兴趣,以前用的不多。

另外,我觉得数据收集很重要的前提是要确保数据的真实性,这方面你们有什么好的经验吗
作者: newbigbang    时间: 2009-11-3 10:57
谢谢分享
作者: newbigbang    时间: 2009-11-3 10:58
一般的软件公司,已经有相关的数据,只是没有系统的进行收集和分析,比如说缺陷个数,系统规模,模块规模,开发时间等等。很多时候,这个一般的员工没有去收集和分析,领导看来也只是认为项目不停的在加班,在延期,人手不足,项目的bug数一直降不下来,项目款项收不回来,可是没有仔细的去分析这些数据。
作者: newbigbang    时间: 2009-11-3 10:59
根据项目的ppb和ppo,形成组织级的PPB和PPO,用组织级的PPB和PPO形成新的项目级的ppb和ppo。
作者: stepgyh    时间: 2009-11-23 15:25
用了1个小时把这个帖子从头到尾看了一遍,感觉很有收获,感谢楼主的分享。
作者: xflialps    时间: 2010-1-4 15:06
不错,对我们的工作很有指导意义,多谢分享。
作者: flyee_cn    时间: 2010-1-20 12:04
MA,OPP,QPM,OID都要基于一个根,就是组织级的商业目标,所有的分解,建模,改进都应该基于这个。
作者: sally_2006_1    时间: 2010-1-20 15:58
回复 90# newbigbang


    楼主写的平实又很实用,真是好贴,给我们领进门了,很期待下一主题~~~
作者: freh    时间: 2010-3-15 12:35
好文章, 我们公司明年过四级.现在可以着手准备数据了.
只是现在对工程师不好说服,他们认为这是额外的工作量
作者: yjs916    时间: 2010-3-18 14:20
学习了,很好
作者: xinkaishi    时间: 2010-3-25 14:30
希望能和LZ多交流!
作者: xinkaishi    时间: 2010-4-8 14:29
更关注的不是为了过4级而过4级,而是你们在过了4级后,在员工的日常作业过程中,对于工作质量等的提高上,有没有一些明显的改善,哪些地方有很明显的改善?
作者: daisy_cd    时间: 2010-4-16 21:40
学习!

顺便在这里请教下,据说有个规定,过了3级,必须18个月后才能去做4或5级,但到SEI的网站没找到相关内容,有了解的吗?先谢!
作者: zhengminchao    时间: 2010-7-7 12:46
不容易啊,2008年以后通过的就少了




欢迎光临 思步网 (http://www.step365.com/) Powered by Discuz! X3.2