论坛首页 综合技术论坛

CMM到底给我们带来了什么?

浏览 197314 次
该帖已经被评为精华帖
作者 正文
   发表时间:2005-05-26  
askycn
如果一天没有提交代码是一种疏忽,那么这样的疏忽应该在最早解决,并且大量的工具支持你这么作。而在这样的情况下,你一个月一次的审查目的何在?同时你能否告诉我CMM明确要求你做的每日建造了吗?或者说不进行每日建造在cmm下是不是被允许?而我最希望知道的是作为一种过程标准,关注质量的标准,是不是应该将每日建造这样的可以直接验证,而不是依靠人们主观判断的东西作为标准列出。
同时我希望你知道养成一个良好的工作习惯最好的方式是制度相应的制度和纪律,而培训作用只是辅助性的。说到制度和纪律,我想你找不出一个比xp更加严格的方法了。但是为什么xper一直不把这个实践列维最佳实践呢?又或者是问为什么xp下养成良好习惯的资源投入和时间更加让人满意,而xper却从来不象cmm那样去宣传这件事情呢?
关键的问题II在于你们是不是能够以社会的现实状况出发,承认cmm不能解决目前的状况,其价值的体现至少不是我们马上应该关心的事情。这样可以免除很多不必要的争论。同时我再次建议你们多学习一些基础的软件工程理论,从而能够加深对于cmm的理解。
我想有一句话你一个明白:什么都可以做的东西就是垃圾,或者用程序的语言来说就是万能对象是。。。。。。
同时我还希望你和你的同事能够学习一些基本的管理知识,特别是质量相关的内容,象
引用
在质量越高的情况下,想再前进一步,需要投入的成本越大
这样让人笑话的话最后动动脑子在说出来。
同时我希望你们还研究一下xp的scm,那里有你们真正应该学习的东西,而不是cmm的那些套路。
对于需求我想你们还是停留在一个低层次的解决如何把握需求的地步,而不是一个促进需求合理变化,推动性的促进需求变更的阶段。因此你们的所谓需求管理,只是一种对于变化的跟踪和反馈,而不是对于需求变化的预期和控制。解决的方法只能是跳出cmm的圈子,去作系统工程的角度理解开发的全生态过程,而不仅仅是软件的生命周期。
同时一个需要建立在信心基础的上的理论,其推行的方法和方式需要的是缓慢而渐进的过程,在目前国内的严酷环境下,实施cmm的周期是不能被企业所接受的。他们需要的是立杆见影的效果,因为不如此他们的企业也许今天或者明天就到了生命的尽头。
而如果cmm只是一种软件中产阶级的方法,那么就必须明确的表示出了,而不是加以隐瞒。
不管怎么说实施cmm都是一种高成本大投入的事情,在这样的环境下是否应该目前其风险和使用范围应该是最重要的事情。那些只是说cmm如何好,如何可以有效的改变企业的生存环境的说法,显然只能被认为是一种单纯的市场行为。这样的行为我希望在我们论坛上不要出现。
最后我希望你们能够在cmm的道路上走的更好,同时也能够有适当的精力去学习一些主流的开发方法,比如RUP比如MSF,而不是单纯的只停留在CMM的狭小圈子里面说话。同时我也希望您能明白,软件工程研究和SPEG工作绝对是一种社会性的工作,而不是科学研究,是跨学科跨专业的应用。所以你们必须广泛射猎,而不是只看cmm培训教程。只有这样你们才能了解CMM标准背后的动机和目标,从而可以寻找到最切合实际的实现这些目标的方法,而不是为了实现这些标准而作事情。
实际上你们已经承认cmm不能解决目前我们国家软件企业所面临的最根本问题,但是你们是不是真正从感情上接受了这一点,你们需要问一问自己的良心。
同时最后希望你理解,真正的专家已经脱离的过程的桎梏,而会把精力投入到技术和业务方面去。过程所要解决的和能够解决的只是一个优化的问题,把cmm和xp、rup当作解决问题的良药都是一种不负责的行为。
0 请登录后投票
   发表时间:2005-05-26  
青海渔风
========
To 庄表伟

我觉得有必要对于CMM/ CMMI再次澄清一下。
CMM/ CMMI关注质量,但是,它不是通过直接作用于产品的制成品来控制质量,而是作用于生产软件产品的过程来使得质量变得可控制、可预期。

所以说,并不是实现了CMM/ CMMI之后,一下子马上质量可以提高到一个什么量。而是说,实施了CMM/ CMMI之后,你会知道目前的质量水平是什么,然后,通过流程的改进,从而使质量得到提高。

在说完上面的话之后,再看你说的:“需求管理的成败,更多的取决于”领域经验“,而非”管理水平“,也不是CMM改进能够帮我提高的”。
对于你这句话就要略加分析了。

我们谈需求,要将需要分析与需求管理两件事分开。
需求分析是是主要决定于“领域经验”的。可以说,决定于个人对于“领域知识”以及“分析技能/巧“的掌握程度决定的。
而需求管理则主要是由”管理水平“决定的。
对于CMM/ CMMI而言,对于需求管理,CMM/ CMMI 可以通过作用于流程,直接对管理产生作用。流程的制订与改进,对于需求管理水平的提高有直接的作用。
对于需求分析,CMM/ CMMI不能够有直接作用。但是,它通过作用于流程(主要说就是其与知识相关的流程),使得个人可能学习公司内部其它人员,其它项目的经验,从而提高个人的“领域知识”以及“分析技能/巧”,从而提高需求分析能力。

至于你提的:“我能把所有的客户提出的变更需求全部挡回去!”,这与管理水平没有关系。但是,如果说,你在打回去的过程中,遵守了一定的流程:变更申请的提出,变更申请的复议,变更申请的拒绝。那么,从CMM角度来说,你的需求变更流程就被执行了。

说配置管理,也不是CMM范围内才进行的事。我们又达成共识。只不过,在CMM中,将配置管理作为一个KPA标识出来,并且给出相关的定义、实践及指导等。要知道,CMM这个体系本身就是基于行业的最佳实践总结出来的。其中内容来源于实践,从而用于指导实践。

“关于CMM从1到5的误区。越高级越好,这是一个误区。”
这个问题应该换一个说法,严格地说,从CMM1到5,它的成熟度越高,公司执行的项目,质量越可预期。如果这个结果是我们所希望的,那么就好。但是,如果某一个公司老总说:我觉得我现在的项目结果可预期情况已经足够好了,不需要继续改进。那么,实现到第五级似乎的确也无必要了。这也是为什么世界上只有少数公司通过CMM5的原因。因为很多做软件产品的公司,因为他们是做产品的,它们的产品质量只要足够好,足够可预期就可以了。
这同样也解释了,为什么做外包的企业,很热衷于提高自己的成熟度。因为这是这个企业的商业模式决定的。外包企业的竞争优势就在于你将东西交给我做,结果是可预期的。当然,成熟度越高越好。

关于你说:现在就需要打破循环的手段,不用CMM行不行?我告诉你,打破循环,用的肯定不是CMM。因为CMM本身就不是打破循环的手段。不管你用不用CMM,你要提高自己的产品的质量,用XP也好,用敏捷过程也好,你总要付出一些额外的成本的。这些成本如果不计在价格里面,就必须自己消化。在因为成本问题不能很好地执行CMM的企业里,执行其它东西,也不会彻底及义无反顾的。

最后,在量化管理的成本问题上,量化管理是要化成本的,而且我同意得到精确数据的成本是非常高的。我完全同意,并且这正是为什么量化管理是CMM4级的KPA的原因!

那么,在达到量化管理之前,怎么说明你的效果已经出现了呢?有一个简单的手段是比照。拿公司的类似项目对比。另外一个方法就是定性说明。就是说:我虽然无法说明现在我们产品中会有多少个bug,但是,我们可以说,在项目执行的早期阶段发现的缺陷数目明显比以前增多(这就意味着后期发现缺陷的机会的减少)。这样的定性分析,在刚上CMM的时候,是已经很能够说明问题了。另外,并不是所有的数量都是很难获得的。比如在项目中,已经发现的缺陷数量,这是一个比较容易获得的量。
0 请登录后投票
   发表时间:2005-05-26  
ozzzzzz 写道
askycn
如果一天没有提交代码是一种疏忽,那么这样的疏忽应该在最早解决,并且大量的工具支持你这么作。而在这样的情况下,你一个月一次的审查目的何在?同时你能否告诉我CMM明确要求你做的每日建造了吗?或者说不进行每日建造在cmm下是不是被允许?而我最希望知道的是作为一种过程标准,关注质量的标准,是不是应该将每日建造这样的可以直接验证,而不是依靠人们主观判断的东西作为标准列出。
同时我希望你知道养成一个良好的工作习惯最好的方式是制度相应的制度和纪律,而培训作用只是辅助性的。说到制度和纪律,我想你找不出一个比xp更加严格的方法了。但是为什么xper一直不把这个实践列维最佳实践呢?又或者是问为什么xp下养成良好习惯的资源投入和时间更加让人满意,而xper却从来不象cmm那样去宣传这件事情呢?
关键的问题II在于你们是不是能够以社会的现实状况出发,承认cmm不能解决目前的状况,其价值的体现至少不是我们马上应该关心的事情。这样可以免除很多不必要的争论。同时我再次建议你们多学习一些基础的软件工程理论,从而能够加深对于cmm的理解。
我想有一句话你一个明白:什么都可以做的东西就是垃圾,或者用程序的语言来说就是万能对象是。。。。。。
同时我还希望你和你的同事能够学习一些基本的管理知识,特别是质量相关的内容,象
引用
在质量越高的情况下,想再前进一步,需要投入的成本越大
这样让人笑话的话最后动动脑子在说出来。
同时我希望你们还研究一下xp的scm,那里有你们真正应该学习的东西,而不是cmm的那些套路。
对于需求我想你们还是停留在一个低层次的解决如何把握需求的地步,而不是一个促进需求合理变化,推动性的促进需求变更的阶段。因此你们的所谓需求管理,只是一种对于变化的跟踪和反馈,而不是对于需求变化的预期和控制。解决的方法只能是跳出cmm的圈子,去作系统工程的角度理解开发的全生态过程,而不仅仅是软件的生命周期。
同时一个需要建立在信心基础的上的理论,其推行的方法和方式需要的是缓慢而渐进的过程,在目前国内的严酷环境下,实施cmm的周期是不能被企业所接受的。他们需要的是立杆见影的效果,因为不如此他们的企业也许今天或者明天就到了生命的尽头。
而如果cmm只是一种软件中产阶级的方法,那么就必须明确的表示出了,而不是加以隐瞒。
不管怎么说实施cmm都是一种高成本大投入的事情,在这样的环境下是否应该目前其风险和使用范围应该是最重要的事情。那些只是说cmm如何好,如何可以有效的改变企业的生存环境的说法,显然只能被认为是一种单纯的市场行为。这样的行为我希望在我们论坛上不要出现。
最后我希望你们能够在cmm的道路上走的更好,同时也能够有适当的精力去学习一些主流的开发方法,比如RUP比如MSF,而不是单纯的只停留在CMM的狭小圈子里面说话。同时我也希望您能明白,软件工程研究和SPEG工作绝对是一种社会性的工作,而不是科学研究,是跨学科跨专业的应用。所以你们必须广泛射猎,而不是只看cmm培训教程。只有这样你们才能了解CMM标准背后的动机和目标,从而可以寻找到最切合实际的实现这些目标的方法,而不是为了实现这些标准而作事情。
实际上你们已经承认cmm不能解决目前我们国家软件企业所面临的最根本问题,但是你们是不是真正从感情上接受了这一点,你们需要问一问自己的良心。
同时最后希望你理解,真正的专家已经脱离的过程的桎梏,而会把精力投入到技术和业务方面去。过程所要解决的和能够解决的只是一个优化的问题,把cmm和xp、rup当作解决问题的良药都是一种不负责的行为。


青海渔风
=====
我现在基本可以确定你对于CMM的了解只是停留于概念层面上了。连一个月一次的审核有什么用这样的问题都可以问出来,我只能苦笑了。我没有想到你对于CMM的了解只是这样的一个水平。太出乎我的意料了。我同事推荐我过来参与这里的讨论,我本以为可以碰到同道,无论肯定,或是否定,讨论之后,一定有所增益。但是,看到这样的问题,你终于成功地让我失望了。

另外你既然引了我的文是:
引用
在质量越高的情况下,想再前进一步,需要投入的成本越大

连这句话的含义都不懂的话,从而只引用了这样的几个字,而不通篇理解上下文,就说什么可笑。呵呵,我建议你自己想好了再发言。

至于你文中其它的观点,只能惹方家一笑而已。不提也罢。
0 请登录后投票
   发表时间:2005-05-26  
TO 青海渔风

来回的次数已经很多了,不打算在写长的了。就简单的写一点吧。

1、我们的分歧没有一开始看起来那么大。你对于CMM的界定,相当的理智和客观。
2、我原来就知道如何去做的事情,现在CMM总结成一个KPA再来告诉我一遍,我虽然不能说他不好,但是也没觉得有什么价值。
3、我一直觉得很困难,不知道如何解决的问题,CMM也没告诉我如何去做。所谓过程改进,不是知道目标就能实现目标的。
4、出于老板的恐慌,他们往往会认为:“只要流程是可控的,流程就是可改进的。改进流程,必须从控制流程的每一个环节开始。而要控制流程的每一个环节,不搞‘文档驱动’,就不能达到效果。”
5、再来说需求管理,按照你的说法,只要我“填写表格够清楚”客户的需求就可以挡回去,这不违反CMM,所以客户没有理由不满。当我以CMM5级的标准填写所有的表格以后,哪怕是不完成一个需求,客户都该付钱给我了。

6、还有一个问题,在没有量化的指标之前,CMM推进小组,如何向老板证明自己的进步呢?
0 请登录后投票
   发表时间:2005-05-26  
to:青海渔风

你的态度比"askycn"好多了,呵呵。

其实争论的焦点在于“CMM在哪些情况下是适用的,在哪些情况下是不适用的”
从我的角度来看,对于承接目前国内企业应用开发类项目的公司来说,CMM弊大于利。
外包类项目我不是很了解……
0 请登录后投票
   发表时间:2005-05-26  
引用

青海渔风
=====
连一个月一次的审核有什么用这样的问题都可以问出来,我只能苦笑了。我没有想到你对于CMM的了解只是这样的一个水平。太出乎我的意料了。

To 青海渔风:
我对这个一个月一次的审核比较感兴趣。怎样制定出这个审核的?根据什么,重点在哪?这个审核流程是怎样订出来的?
可以就CMMI的说法来讨论讨论,这个模型我还是有些了解的。
0 请登录后投票
   发表时间:2005-05-26  
庄表伟 写道
TO 青海渔风

来回的次数已经很多了,不打算在写长的了。就简单的写一点吧。

1、我们的分歧没有一开始看起来那么大。你对于CMM的界定,相当的理智和客观。
2、我原来就知道如何去做的事情,现在CMM总结成一个KPA再来告诉我一遍,我虽然不能说他不好,但是也没觉得有什么价值。
3、我一直觉得很困难,不知道如何解决的问题,CMM也没告诉我如何去做。所谓过程改进,不是知道目标就能实现目标的。
4、出于老板的恐慌,他们往往会认为:“只要流程是可控的,流程就是可改进的。改进流程,必须从控制流程的每一个环节开始。而要控制流程的每一个环节,不搞‘文档驱动’,就不能达到效果。”
5、再来说需求管理,按照你的说法,只要我“填写表格够清楚”客户的需求就可以挡回去,这不违反CMM,所以客户没有理由不满。当我以CMM5级的标准填写所有的表格以后,哪怕是不完成一个需求,客户都该付钱给我了。

6、还有一个问题,在没有量化的指标之前,CMM推进小组,如何向老板证明自己的进步呢?


青海渔风
=====
1. 相信我们讨论之后,会发现共识越来越多。:)
2. 很多东西我们原来知道,这是不错的。但是,CMM的作用在于,将我们很多已知的东西形成一个互相兼容,互相促进的体系,这就是CMM的作用。有一个形象的比喻。原来那些行业内的最佳实践是一个个珍珠,现在有一个CMM将其串在了一起,形成了一个项链,你不可否认,十个珠子串成的项链要十个珠子贵一些吧?那么,这些增值部分,就是那个线的作用了。
3. 打个比方吧。我们去医院看病,最后治好病的是药与处方。但是,我们不可能一下子得到那个药和处方。我们必须经过一个过程:医生问你,你告诉医生,然后,可能还需要一些检查。最后,医生开了一个药方,你去拿药,然后,药到病除。类似的,CMM它不是药,它关注的流程。它是假设医生遵守一个既定的流程,可以得出一个可预期的结果。对于你的问题也是一样的。CMM不会给你问题的答案。但是,它关注流程,通过这个流程,不断改进,从而生产出质量可预期的产品,从而解决了你的问题。
4. CMM并不是意味着一堆文档。事实上,真正因为CMM而增加的文档在我目前在执行的项目中,是很少的。具体一点是:《配置管理计划》,《需求跟踪表》,《控制项状态清单》等。其它的东西,其实都是本来就应该做的。比如需求要需求文档,评审要留下评审记录。在CMM中,文档不是目的。只是因为它要求所有的活动都留下记录而已,而记录的最好方式好象也就是文档。所以说,文档是你所做的事情的副产品,而你所做的活动最重要的目的是为了提高软件产品的质量。所以有的时候,如果你觉得你的质量已经可控制了,你可以在写这些文档的时候,较为松散一些。
5. 呵呵,当你按照一定的流程,拒绝了客户的需求之后,那么,就说明流程中需要改变的东西。比如需要增加与客户的沟通协调会,同时,在必要的时候,可以增加销售人员或客户经理与对方的讨论这样的活动。当然,就算这样,最后客户也可能增加无理的要求。这是没有办法的,CMM不能够让你去拒绝客户本来无理的要求。但是,它会告诉你,这项需求增加了之后,你的项目可能推迟多久,对于工期,成本造成的影响等。你可以告诉客户这样的结果。如果他又要增加需求,又不想给钱,或给时间,那么,你就可以告诉你们公司的老总说:现在这个项目出现了这样的事,可能需要加班,如果加班还不能解决问题,那么,你干脆投降了。因为在CMM下面,它允许预期中的“项目失败”。即,它可以准确告诉你项目的状态,即使它告诉你的是:这个项目注定失败。
6. 在没有量化之前,可以定性地介绍(我前面提到过),而且还可以是行业经验,或是专家意见洗脑。这些都是很难的,所以,CMM在任何公司的推广,最初都是一个痛苦的过程。不过,这个过程有长有短。有度过去,有中途失败的。
0 请登录后投票
   发表时间:2005-05-26  
jiwenke 写道
引用

青海渔风
=====
连一个月一次的审核有什么用这样的问题都可以问出来,我只能苦笑了。我没有想到你对于CMM的了解只是这样的一个水平。太出乎我的意料了。

To 青海渔风:
我对这个一个月一次的审核比较感兴趣。怎样制定出这个审核的?根据什么,重点在哪?这个审核流程是怎样订出来的?
可以就CMMI的说法来讨论讨论,这个模型我还是有些了解的。


青海渔风
=====
关于一个月的来历:
CMM中规定要有定期审核。这里的定期,不宜太短,但是,也不宜过长。根据数据分析,一个月是一个合适的值。而且这个数据本身也是一个不断优化出来的值。
关于审核的内容:
配置管理审核的内容,是对于配置管理计划执行情况的一个检查。主要包括配置项的状态及其变化是否受控,是否在按流程进行。
审核流程的制订:
审核流程的制定是由另外一个流程的产出。这就是它的来历。并且审核流程本身是可以定制与裁剪及优化的。
0 请登录后投票
   发表时间:2005-05-26  
zoff 写道
同意楼上的观点。我们也在实施CMMI,个人感觉就是空对空的东西太多了。
我们的实施过程大致如下。咨询公司的一群专家“审问”了我们不同角色的人员,像我就是作为BM“受审”的。专家说我们的流程有xxxx不符合,于是就给了一套规则,给了一套体系结构。然后技术质量部就拿着这个东西制定规范。当然,规则是可以裁剪的——然后技术质量部就说这个是可以裁剪的——问题是裁剪是交给我们来完成的,然后有些是技术质量部认为不能裁剪的,然后我们突然发现有些“不能裁剪”的东西在实际中只是浪费时间,没有任何意义。而问题是,无论专家还是我们的技术质量部,他们根本就不知道我们到底在开发的时候需要一个什么样的东西,他们只是知道CMMI的教材里面说了什么。
说道这里我倒是想起了两个不相关的东西——一个是我对我们的scm管理的看法(请看http://zoff.blogdriver.com/zoff/643601.html,我的blog,呵呵),而另一个就是电子政务中遇到的一个有趣的问题。xxx总局下过一个文件,要求统计xxx率之类。然后下面的局就要统计,需要软件增加这个功能,然后问题来了,这个xxx率要求的数据在以前根本就没有存,也就是说以前的xxx率都算不出来,但是总局要,于是只好提供了瞎编功能。我说这两个例子,就是想说,一个文件也好,一个规矩也好,总要和实际挂起钩来。现在的情况是CMMI和实际之间,总是隔着一条河。kpa说要干什么,就要干什么,这样专家的工作就结束了——而软件公司真正需要的是这个要求到底如何和现有的流程作一个妥协或者改革,这个专家是不管的,然后问题在于,像我们的技术质量部一样,似乎软件公司负责实施CMMI的人也不知道真正他们需要的是“在CMMI的理论指引下,高举提高利润的大旗,降低成本、提高质量,为把公司建设成为赚钱机器而奋斗”,而是为了CMMI而CMMI。而这样,我始终认为,一把锋利的斧子,带来的危害比起一把铅笔刀更大。

你们遇到伪专家的概率比较大。但是真正的专家又有多少?
0 请登录后投票
   发表时间:2005-05-26  
青海渔风 写道
在质量越高的情况下,想再前进一步,需要投入的成本越大

我想青海渔风和 o6z 对于这句话的理解有些差异。
青海渔风想说的是,在已经达到很高质量的情况下,想要得到更高的质量,需要投入的成本要大的多。
我的理解是:其实一个软件产品我们追求的并非是完美的质量(0 缺陷)。我们追求的是在完全满足用户需求的前提下的高质量的产品。因此,首先是完全满足用户的需求,其次才是质量。而对于质量的追求最终会有一个可接受成本的临界点,达到了这个临界点,我们就无法再做更多的事情了。当然质量其实是一个含义非常丰富的概念,这里我只是狭义地理解为 bug 数量。其实是否满足用户的需求、使用的方便程度、界面的美观程度、性能、安全性、可伸缩性、高可用性、架构的灵活性、维护是否方便等等都可以作为软件的质量来衡量。
o6z 对于这句话的理解我不是非常清楚。

另外,你们确实也需要对于敏捷开发方法有些深入的了解。通过你们的文章,我看不到你们对于敏捷开发方法最为关注的一些问题有些什么深入的想法,基本上就是躲进小楼成一统,在自己的圈子里面(CMM/CMMI)自说自话。我想这样也不太好。

在你们来这里之前,这个论坛最熟悉和了解 CMM 的,差不多就是 o6z 了。说 o6z 完全不懂 CMM,在我看来就像说我完全不懂 JavaScript 一样荒谬。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics