CMMI的美式吐槽 - 中文版

文摘   2024-05-23 15:25   美国  
7年前教软件度量课程,学生基本都是有多年业内经验的在职软件工程师和管理人员,每周我们会找一个专题讨论。有一次的问题是关于CMMI度量与分析(Measurementand Analysis)过程域的一个问题,大家根据各自的经验,巴拉巴拉的讲了很多不错的体会。我注意到一个同学,在别人讲的时候,表情各种丰富,一副内心戏十足的样子,所以特意点将让他来分享下。
然后,就开启了这哥们儿的美式吐槽模式。多年前他在某家军工企业工作,CMMI的实施让他觉得痛苦不堪,在结束发言时他说:讲真话,我宁愿到快餐店做汉堡,也不愿在这样的CMMI的软件企业里写软件。
很明显,他对CMMI的理解是错误的。但错不在他,而在于错误的CMMI实施方式。CMMI是一部常常被念歪的好经,它没有要求我们把简单的事情复杂化、没有逼着我们做违背常理的事。可惜许多人在几百条实践里面挣扎时,没有跳出来理清楚它们的目的是什么?没有考虑到在你的组织、部门、项目又如何体现?没有关注能帮助你解决哪些实际问题?
当你把模型当成过程来理解,当你把子实践也当成标准来落地时,那么恭喜你,你成功的把CMMI做到了骨肉分离。
这位同学讲完估计意犹未尽,把发言整理了一下,邮件发给了我。7年前我实在懒得翻译,将原文发在“老丛讲桌”上。今天在ChatGPT翻译的基础上,稍作修改,用中文再发一次。


这个MA问题简化后似乎是:“如果你只按照任务清单执行MA中的具体实践,MA的要求会满足吗?为什么是/为什么不?”

简短回答是:不会。为什么?根据我对CMMI的记忆,仅仅做具体实践和活动是不够的;你必须真正达到目标,每个过程区域都与通用目标和实践以及具体目标和实践相互交织。

但真正的问题是:谁在乎呢?CMMI是我学术和职业生涯中的祸根。在编程和项目管理领域,没有哪个概念给我带来更多的痛苦。它完全是时间和精力的浪费,除了少数几个政府相关的实体和一些长期使用它的大公司之外,毫无实际用途。它是军事思维的产物,老实说,这是我所学过的最糟糕的官僚垃圾。任何需要600页手册来模糊(且糟糕地)解释的框架、过程、实践或范式都是无用的废话。我是敏捷方法论的坚定支持者,并且通过我们的团队项目,我开始非常喜欢我读到的关于精益方法的内容。

软件工程在非常小且模块化的层面上工作得最好。当我们开始引入那些关注企业整体视角的管理架构时,它威胁到编程和架构设计的艺术价值,使其失去追求的意义。对我来说,软件开发的吸引力在于其能够在蜂巢式的环境中工作;每个项目都可以分解成小项目,这些小项目相互交织,形成一个更大的实体,这种灵活的方式能让开发过程变得如同一幅不断延展的复杂壁画。

软件团队应由一个简单、程序化且可扩展的范式来引导。不要误会,CMMI有很多正确的理念。它失败的地方在于过度定义这些理念,并创建了一个子过程,其中学习和遵循CMMI描述的各种活动本身就是一个巨大的时间和精力投资。想象下面这个类比:

你有一个多年来度假拍摄的大量照片,终于将每个文件都数字化并存储在电脑上。由于这些图像没有元数据,你发现很难找到特定的一组图像来展示给朋友或打印等。为了简化,你决定将图像组织到文件夹中。最好的方法是什么?这些图像跨越了2007年至2017年的10年,因此你可以为每一年创建10个文件夹,然后在每个文件夹中创建12个文件夹,对应每年的12个月。你将有120个文件夹,2层深。这在你按日期查找时有帮助,但这个指标对你来说可能并不那么重要;按照图像的实际内容来组织可能更有意义。你可以创建文件夹来分类室内/室外图像,肖像/风景图像,人物图像,风景图像,以某种颜色为主的图像……分类方法是无限的。经过几个小时的整理和分析后,你可能会发现你的120个文件夹扩展到几千个文件夹,几百层深。现在,即使你的图像按年份、月份、方向、大小、内容、颜色和其他几个因素仔细分类,你实际上为自己创造了更多的工作,因为每张图片被过度分隔,难以轻松找到。一段短途旅行的所有照片可能分布在30个不同的文件夹中,彼此不相连。

这就是CMMI对我来说的样子。好的概念被分解成太小且定义过于详细的部分,反而不利于其本身的好处。与其拥有一个暗示许多必要实践的通用过程,CMMI试图将其微观管理到彻底无用的地步。学习曲线本身意味着CMMI是一个非常“会员制”的俱乐部,对于那些不熟悉它的人来说,从公司的角度来看基本上是一个不好的投资。培训新员工是许多公司低估的巨大成本;不仅新员工生产力较低,培训和指导他们的有经验的员工在新员工完全胜任之前也会变得不那么高效。

因此,这个问题对我来说有点侮辱,因为我最真诚的回答是:“谁在乎呢?为什么我们在谈论CMMI?我宁愿去翻汉堡,也不愿再为需要处理那个烂摊子的承包商工作。我在军工的时间已经足够了,我不打算回去了。”


推荐阅读

1. CMMI的美式吐槽

2. 荒诞不经的十个软件工程真相

3. 醍醐灌顶的QA十个认知

三尺讲桌就在这小小二维码,长按二维码“识别”关注

老丛讲桌
这是一个小小学习园地,老丛会介绍一些有趣的计算机相关故事(如人物,历史,事件等),也会分享一些专业知识和个人感悟。
 最新文章