首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

实施CMMI3随感:CMMI绝对是软件公司的特大毒瘤

2014-04-18 
实施CMMI3有感:CMMI绝对是软件公司的特大毒瘤!公司实施了一段CMMI3,很有感触,总结一下:1CMMI文档过多过滥

实施CMMI3有感:CMMI绝对是软件公司的特大毒瘤!
公司实施了一段CMMI3,很有感触,总结一下:
1CMMI文档过多过滥
    抽象看,好像CMMI的文档每一项都能说出它的用处来,但为什么这些“有用”的文档却不能在软件开发实践中起到促进作用,反而成为一种累赘呢?可能有以下几点:
1)现实中这些“有用”的文档都只是可能有用,而非一定有用。而且每份文档能起到作用的概率都很小,只是小概率事件。为了应对大量的小概率时间,而写大量的文档,付出相当大的工作量;即使这个小概率事件在一个较长时间内发生了一次,CMMI文档为此节省的成本,一般也无法抵消大量文档编写导致的成本升高。更何况不用CMMI也要写必要的文档,这个小概率未必就一定造成损失。
这就好比,每次赶飞机都提前2小时到机场以避免误机一样,坐一千次飞机耽误了2000小时。另一个人每次都提前三十分钟到机场,虽然偶尔有一次误了机,导致的损失也比不上2000小时的时间损失。
2)项目开发人员都不是作家,没有几个人有下笔成章的文笔能力。编写文档往往本身成为一个大的时间开销。假定每个人都有随手把心中所想转化为文档的能力是不切实际的。
         3)软件开发人员的工作成效往往是在特定时段创造的,就是通常大家说的“灵感来了”。这种状态一旦被打断,下次进入这种状态就比较困难,勉强去做可能比高效状态效率低得多,出错概率还高。CMMI繁琐的文档和会议常常打断开发人员的思路,客观上延长了项目开发的周期,提高了出错量。
         4)CMMI把高度创造性的开发过程当成机器的开动运转和停止,忽视了人的主观能动性和人在不同状态下工作效率的很大差异,必然遇到开发人员的普遍抵制。
2CMMI定位是精细化管理,需要过程、交付、量化数据来支撑,如果还是依赖人员的检查、海量的Excel文件汇总,势必导致技术人员抵触,这样CMMI必然流于形式,所以结合业界成功实施CMMI公司的经验:CMMI必须要借助IT手段来推行。否则就是一大祸害。

[解决办法]
关于CMMI3 ,确实很少碰到能把它用好的企业. 但它是个工具,能否用好还得看人. 
本人并不排斥它,因为它也有很多好处,并非一无是处. 个人觉得其重点就两个方面: 
过程和数据. 如果不知道它的特点而盲目引用,结果可想而知:费时费力不讨好.
文档是跟过程相关的,你觉得文档多,其实就是说过程厚重了,应该是可以裁减的.
[解决办法]
那为何要搞CMMI呢,肯定有个源头吧. 
我当年实行CMMI 也是很多人觉得不爽,但真正走好后还是很规范的.中间过程比较麻烦.
[解决办法]
对CMMI的感触与LZ差不多,
个人觉得,不能完全抵触CMMI,也不能盲目照搬。
质量管控的人员和开发人员应该结合自身实际情况和CMMI规范,
再通过会议讨论认为哪些文档是必要的,哪些是没必要,再决定写哪些文档,
而不是把CMMI需要的文档全部都写。

CMMI应该作为参考,而不是教条,否则就成了形式主义和教条主义了。不过,当组织达到某种规模时,这方面的问题难免。
[解决办法]
为了拿证接项目这就难怪了...
CMMI3 是重过程的管理方式, 适合管理大型项目和周期较长的产品.适合"组织级"的管理优化. 对于单个的项目而言,如果适应了作坊式开发,或者敏捷的方式,再改成CMMI确实会怨声载道.毕竟有太多的新规矩要
制定和遵守.
    根据企业自身特点选择合适的方式吧.如果老板都不上心,你也不用费那个劲了.
[解决办法]

引用
感觉推出CMMI的机构应该提供相应的IT工具,否则那么多文档,一致性极难保证,一个时间改掉或者后期模块做调整,要翻阅很多文档去做相应改动,工作量比修改代码还大得多。所以CMMI客观上阻止了代码和架构的优化,让不良的设计持续到底,最终烂掉。

工具肯定是有的.我用过CC CQ 对CMMI3的支持就比较好. 大型项目如果你不规范管理,后继的变更,维护,换人等等会更加糟糕.
CMMI阻止了代码和架构的优化? 肯定不会.只不过你目前可能都是手工文档在做.所以你的配置管理会比较繁琐.
如果来了一个变更, 如何进行影响分析? 如何进行配置项识别? 没有相应的东西支撑,估计都是靠拍脑袋,查代码或者干脆依赖做完后测试. 如果事先你就能知道要改哪些文档,哪些代码,变更处理会更加有利.
如果你不用其他工具想把CMMI做好,确实比较困难.
我经历过做得好的,每个版本的需求和最终做出的程序完全一致,工期估算也很准确,项目计划几乎毫无偏差地被执行.

[解决办法]
这个主要还是为了应付那些官僚老爷。
[解决办法]
你打开一本20年前的软件“国标”来看看,不管哪一个文档,基本上都是一大堆罗列的“xxxx性、xxxx性、xxxx性”之类的定性术语上。这种文档根本就是说是非的,而不是说流程的。根本就是事后说三道四用的,而不是事前准备驱动你尽快开发出优秀产品用的。

这就好像你去吃饭,别人已经点好了餐,而你还在那里默念“这个性、那个性”之类的是非判断,甚至要给人家厨师上一堂“标准化课程”,你才敢在这个饭馆吃饭。结果可想而知。这种人就是契诃夫笔下的那个打扮得不男不女的“套中人”。

我们不是20年前美国国防部的官老爷,也不使用它来苛刻要求那些巨型武器公司的产品的。针对中国的软件公司的行为标准,我们应该比这些东西少更多地“是非”纠结,多删除一些东西。

我们少纠结一些“是什么”的争论,多一些“如何做”的实践。
[解决办法]
使用极限编程开发方法,在非常务实地编制了必要的“安全网”之后,我可以有勇气去在几天之内将多个核心架构重新调整,即使立刻出现500个严重bug,也可以有勇气在两天之内完美地消除掉。当我们遇到“肯定会被一致反对的”的观点时,往往可以断定这人肯定是没有跟我们一样熟练使用极限编程开发方法的,是出于没有自动化软件测试技术所带来的胆怯(尽管理论头头是道,但是很少道理已经被写成了自动化程序,他们的道理都是不可执行的“自然语言文字”)。

我们是有了其它技术手段之后,才反对CMMI。而不是盲目抛弃它的。

热点排行