这个MA问题简化后似乎是:“如果你只按照任务清单执行MA中的具体实践,MA的要求会满足吗?为什么是/为什么不?”
简短回答是:不会。为什么?根据我对CMMI的记忆,仅仅做具体实践和活动是不够的;你必须真正达到目标,每个过程区域都与通用目标和实践以及具体目标和实践相互交织。
但真正的问题是:谁在乎呢?CMMI是我学术和职业生涯中的祸根。在编程和项目管理领域,没有哪个概念给我带来更多的痛苦。它完全是时间和精力的浪费,除了少数几个政府相关的实体和一些长期使用它的大公司之外,毫无实际用途。它是军事思维的产物,老实说,这是我所学过的最糟糕的官僚垃圾。任何需要600页手册来模糊(且糟糕地)解释的框架、过程、实践或范式都是无用的废话。我是敏捷方法论的坚定支持者,并且通过我们的团队项目,我开始非常喜欢我读到的关于精益方法的内容。
软件工程在非常小且模块化的层面上工作得最好。当我们开始引入那些关注企业整体视角的管理架构时,它威胁到编程和架构设计的艺术价值,使其失去追求的意义。对我来说,软件开发的吸引力在于其能够在蜂巢式的环境中工作;每个项目都可以分解成小项目,这些小项目相互交织,形成一个更大的实体,这种灵活的方式能让开发过程变得如同一幅不断延展的复杂壁画。
软件团队应由一个简单、程序化且可扩展的范式来引导。不要误会,CMMI有很多正确的理念。它失败的地方在于过度定义这些理念,并创建了一个子过程,其中学习和遵循CMMI描述的各种活动本身就是一个巨大的时间和精力投资。想象下面这个类比:
你有一个多年来度假拍摄的大量照片,终于将每个文件都数字化并存储在电脑上。由于这些图像没有元数据,你发现很难找到特定的一组图像来展示给朋友或打印等。为了简化,你决定将图像组织到文件夹中。最好的方法是什么?这些图像跨越了2007年至2017年的10年,因此你可以为每一年创建10个文件夹,然后在每个文件夹中创建12个文件夹,对应每年的12个月。你将有120个文件夹,2层深。这在你按日期查找时有帮助,但这个指标对你来说可能并不那么重要;按照图像的实际内容来组织可能更有意义。你可以创建文件夹来分类室内/室外图像,肖像/风景图像,人物图像,风景图像,以某种颜色为主的图像……分类方法是无限的。经过几个小时的整理和分析后,你可能会发现你的120个文件夹扩展到几千个文件夹,几百层深。现在,即使你的图像按年份、月份、方向、大小、内容、颜色和其他几个因素仔细分类,你实际上为自己创造了更多的工作,因为每张图片被过度分隔,难以轻松找到。一段短途旅行的所有照片可能分布在30个不同的文件夹中,彼此不相连。
这就是CMMI对我来说的样子。好的概念被分解成太小且定义过于详细的部分,反而不利于其本身的好处。与其拥有一个暗示许多必要实践的通用过程,CMMI试图将其微观管理到彻底无用的地步。学习曲线本身意味着CMMI是一个非常“会员制”的俱乐部,对于那些不熟悉它的人来说,从公司的角度来看基本上是一个不好的投资。培训新员工是许多公司低估的巨大成本;不仅新员工生产力较低,培训和指导他们的有经验的员工在新员工完全胜任之前也会变得不那么高效。
因此,这个问题对我来说有点侮辱,因为我最真诚的回答是:“谁在乎呢?为什么我们在谈论CMMI?我宁愿去翻汉堡,也不愿再为需要处理那个烂摊子的承包商工作。我在军工的时间已经足够了,我不打算回去了。”
推荐阅读
1. CMMI的美式吐槽
3. 醍醐灌顶的QA十个认知
三尺讲桌就在这小小二维码,长按二维码“识别”关注