yhp1314520 发表于 2007-7-27 18:47:05

对软件过程改进的思考

对软件过程改进的思考

前言

本文的观点或许有些偏颇,其实我也承认很多西方的管理模式是非常优秀的,而且也确实取得了一些大的成就,可是为什么移植到我国后,就会发生许多质的变化呢。我们为什么老喜欢做一些面子上的工程,而不是实实际际的去做一些基本的工作,真正有意义的工作呢?
在写这篇文章时,很多同学和网友都给了我很大的帮助,而且为了更好的阐述观点,本文在论述过程也引用了一些专家的观点和阐述,在这里先行谢过。同时也衷心希望我国的软件业能有一个更美好的明天!

正文

当学习了软件过程改进这门课后,我时常在考虑一个问题,那就是大家一提软件过程改进,言必是CMM云云,给人的感觉好象软件过程改进就是CMM是的。其实作为一门学科来讲,软件过程改进所包括的内容是多方面的,CMM只是其中的一分子。就我个人认为:软件过程改进对我国的软件质量的提高和开发进度控制还是非常有好处的。为什么要这么说呢,我可以举一个我们现实生活中的例子来说明一下。不知大家吃过西餐没有,如果你吃过的话,你有没有发现不管你来吃多少次,味道似乎都一样呢。再让我们来比较一下中餐,你敢说你每次吃的都是一个味道吗?特别是当这个餐厅的大厨换人的时候。为什么中餐厅会因为某个大厨的离开而影响其生意甚至倒闭,而西餐厅却不会呢。仔细分析其实并不难理解,这是因为西餐厅把自己的每道菜用多少菜,放多少油,盐,酱,醋都形成了规范,形成了标准的文挡,形成了操作的习惯,它不会因为某个人的离开而无法继续进行。而我们的中餐厅却不是这样的,他呢只会依靠几个水平很高的大厨来支持他的运作。我们很容易想象当这些人离开后所产生的影响是多么大,轻则影响生意,重则甚至关门,这种事我们见得还少吗?再来看我国软件行业,和中餐厅的运营方式是多像啊,我们难道只有到了关门大吉的时候才会哀叹自己既知今日,何不当初就。。。,那就晚了。

有人可能会问我,那我们也可以像西餐厅的那样,采用CMM(很多人长挂在嘴上的话题,显的自己很智慧,其实对CMM的主旨也只是一知半解而已)来管理我们的公司,是不是就解决问题了呢?这多像一个病人充满希望地问医生:“你看我的病什么时候能好?”。在这里我不想打击很多准备实施CMM的企业的积极性,我只想说的是“你要看CMM到底适合你的公司吗?你的公司有实施CMM的能力吗?”。说到这在让我们来看看我国中小企业的实际情况吧:管理基础薄弱,资源不足,生存压力大,缺乏统一而有力的文化,人员素质良莠不齐。在这种情况下去实施CMM真的能妙手回春,解救你的公司于水火之中吗?我真的很表示怀疑。

有人会说,你不要那么悲观吗?你看我国ISO9000不就实施的很好吗?不要再岂人忧天了。听到这话我不禁要反问一句“我们的ISO9000真的就实施的很好吗?”。请允许我再举一个我们张老师给我们讲的故事“东门外一个卖油茶的人,很激动的对来往的人说我卖的油茶通过了ISO9000,你们快来吃吧。”,我想可能大家都会被他吓跑,谁还敢去吃他的油茶啊。首先我要申明,在这里我没有一点侮辱ISO9000的意思,我只是想说ISO9000在我国是否泛滥了呢,我记得我曾经工作过的一个单位,为了通过ISO9000所做的一切事情,除了自欺欺人,还能剩下些什么,我不想再多说什么,或许这种事情太多都见怪不怪了,麻木了吧。说真心话我可不希望CMM也和ISO9000一样。

其实我们都明白,实施CMM和ISO9000的作用是为了什么呢?还不是希望提高我们的软件质量吗?很多时候我们都是为了什么而什么,而忘却了真正的目的是什么。我认为一个企业最大的目的是赢利,因为不赢利他就无法生存,都无法生存了,还有必要去考虑一些面子工程吗?“马斯洛需求层次理论“我想大家都知道,他阐明了生存是最大的需求,它是其他需求的基础,离开了生存的一切都是空的。我想这是很好理解的,当你的生存都有问题的时候,你还会去考虑其他什么问题吗?我想肯定是不会的。

让我们把话题在转回到软件过程改进上来吧。只要一个软件企业在开发产品,它就一定有一个软件过程。当这个过程不能很好地适应开发工作的要求时,就必须要进行软件过程改进,这就像生产力和生产关系,当生产关系不能适应生产力的发展是就必须要进行改革一样。其实对软件行业而言,软件过程改进并不是一件很困难的事。因为它既没有要求我们写一个操作系统,也没有像设计一个微处理器那样的纯技术上的难度。因此通过我们自身的努力还是有可能很快实现的。

那么我们应该如何去进行改进呢?
首先我们把我们要想达到的状态与目前的状态作比较,找出其中的差距到底在那里。其次我们应该决定到底要改变哪一些差距,是全部还是部分。

scorix 发表于 2007-7-27 21:51:20

我认为楼主对CMM有些误解。
CMM是一种框架,它不是一种要求。小公司一样可以按照CMM的思想进行改进。CMM的中心是“做什么”而不是“怎么做”,它允许选择适当的形式来实施,对业务进行改进。
将CMM作为过程改进的指南,依据企业自身的特点进行改进。CMM不是面子工程,它提倡过程改进,目的是降低软件成本,缩短开发周期和提高软件质量。如果一个企业都快倒闭了,如果它还不考虑改进的话,那宣布破产那一天已经不远了。
另外,CMM不仅仅提倡过程改进,它要求持续改进。这需要以业务环境为基础,规划实施计划,每一步都改进一点,不能跳过任何一个级别。

yaya625 发表于 2007-7-31 12:33:29

关键在于如何用好CMM,单位实施CMM的目的是什么,是为了过级而过级,还是真正为了软件质量
目的不同,恐怕结果也不近相同

red-hat 发表于 2007-7-31 14:11:53

我认为无论是CMM还是CMMI,仅仅是一个参考,具体到一个公司,或者一个项目,要根据实际情况加以取舍或改进,并不是要搞一个统一的固定的模式.把握住CMM(I)的精神,具体的应用到项目中去,才能最大限度的发挥CMM(I)的作用

phillipschen 发表于 2007-7-31 15:09:45

我认为CMM是衡量一个公司强弱的标准之一~但是每个公司都有自己的工作流程~不一定会完全按照CMM来按部就班吧~个人愚见~
页: [1]
查看完整版本: 对软件过程改进的思考