关于流程管理:是否仍然有人相信软件的能力成熟度模型?

关于流程管理:是否仍然有人相信软件的能力成熟度模型?

Does anyone still believe in the Capability Maturity Model for Software?

十年前,当我第一次遇到软件的CMM时,我想与许多人一样震惊的是,它似乎非常准确地描述了许多企业中混乱的软件开发"一级"状态,尤其是对英雄的依赖。它似乎也为组织提高流程改进水平提供了现实的指导。

但是,尽管它似乎为改进提供了很好的模型和切合实际的指导,但我从未真正见证过CMM的坚持对我工作过或与之合作的任何组织都具有显着的积极影响。我知道一家大型软件咨询公司声称其CMM级别为5级(最高级别),当我亲眼看到它们的流程与其他非CMM业务一样混乱,并且其软件产品的质量各不相同时。

所以我想知道,有没有人看到按照CMM坚持流程改进的真正,切实的好处?

并且,如果您看到了改进,您是否认为改进是CMM所特有的,还是一种替代方法(例如6-sigma)是否同样有效?

还有人相信吗?

顺便说一句,对于那些还没看过的人,请看看这个有趣的,因为它是真正的模仿


问题的核心在于这个问题,由CMM指南本身对其进行了巧妙地描述...

" ...正确的判断对于正确,有洞察力地使用CMM是必要的。智力,经验和知识必须塑造特定环境中CMM的适当解释。该解释应基于组织和项目的业务需求和目标。 CMM面向清单的死记硬背的应用程序有可能损害组织而不是帮助组织..."

从卡内基·梅隆大学软件工程学院的能力成熟度模型(改进软件过程的准则)的第14页第1.6节开始,ISBN 0-201-54664-7。


我发现它是be肿的文档练习,主要用作获取合同/维护合同的工具。一旦有了合同,那就是绕开流程的一种练习。

作为一名开发人员,我一无所获,但失去了我在CMMI中徘徊不已的职业生涯的MONTHS。

我将6 Sigma命名为"盒子中的常识"也是如此。我不需要培训如何弄清楚问题出在什么过程上-通常很明显。

对我来说,小型团队和敏捷机制可以更好地工作。周期短,沟通很多。这可能无法在所有环境中都有效,但肯定在我的环境中有效。

只是我的两分钱。


如果看到CMM运行。并快速运行。


对于典型的CMM 1级编程商店来说,努力达到2级是值得的。这意味着您需要考虑您的流程并将其写下来。自然,这将遇到牛仔程序员的抵制,他们感到受到标准,文档和测试用例的限制。

从第2级("有一个过程")到第3级("每个人都有相同的过程")的努力通常会陷入部门间的战争中,因此可能不值得一开始。


如果您的组织从心中汲取教训,CMM和CMMI都会带来一些好处。问题在于,要想达到更高的水平是非常困难且昂贵的,而我唯一看到组织要付出努力的唯一原因是,在达到一定水平之前,他们的客户不会让他们竞标合同。

这样的结果是,组织会竭尽所能来"只是获取数量",而实际上并不关心改进他们的流程。


更高端?否。CMM-5商店并没有给我留下深刻的印象。

下端?是。 CMM-1组织吓到我了。

CMM可以帮助新手/新手团队衡量自己并做自我完善的事情。


CMMI并不是真正在改进软件,而是在记录您所做的事情。您几乎可以通过其产生的文档的重量来估算公司的CMMI水平。

背景:我在软件工程研究生课程中研究了CMMI,并在遵循其准则的团队中工作。


我的经验是,CMM含糊不清,很容易实现。另外,当他们来认证您时,他们会查看您的组织选择的项目。我以前工作过的地方是这个项目,没有真正的截止日期,没有很多钱,也没有很多时间花在每个过程上。许多其他项目继续进行,几乎没有代码/设计审查,有时甚至没有版本控制软件。

我认为对CMM认证的重视是不幸的。公司知道如何使用该系统,并且可以做到。他们没有专注于满足他们底线的实际流程改进,而是专注于获得认证和运行系统。老实说,我认为大多数组织宁愿花时间在前者上,也不愿在后者上浪费太多时间。

真正重要的是,有认真负责的人想要做出良好的发展决策,并且知道他们将需要帮助来做出这些决策。高质量的程序员无可替代,他们知道编程是一个持续的小组活动,他们与其他任何人一样容易犯错误。


我一直在为进行迭代开发的小型团队进行很多面试。就个人而言,如果我在履历表上看到CMM,那是一个很大的危险信号,表明对过程胜于结果的兴趣。


存在所有形式的方法来出售书籍/培训课程/证书,而没有其他原因。这就是为什么有这么多形式化方法的原因。一旦意识到这一点,您就可以自由了:-)


CMM并不是真正讲软件的质量,而是讲文档和过程的可重复性。换句话说,可能有一个有序且可重复的开发过程,但仍会创建糟糕的软件。只要正确记录了该过程,就有可能达到CMM 5级。

归根结底,CMM是另一个可以使用或滥用的工具。如果最终目标是提高软件质量,则可以使用CMM改进开发过程并提高软件质量。如果达到一定的CMM水平是目标,那么很可能会影响软件质量。


该模型正在失去其信誉,首先是因为公司采用该模型不是在寻找成熟的软件开发模型,而是要评估为CCMI级别。

我认为导致信誉丧失的另一个问题是,作为承包商,您无法保证将使用模型实践来开发CMMI评估供应商正在出售的项目。 CMMi标签仅说明该公司曾经开发过被评估为符合特定CMMi成熟度级别的项目。

问题不仅涉及CMMi,还涉及公司开发的流程。 CMMi不会描述流程本身,而只是描述流程应该做什么。您对PMBOK也有同样的问题。实际上,问题不仅在于PMBOK,而主要的问题在于声称遵循PMI声明的不良项目经理。


附言尽管有些偏离主题,但我想提一提的是,伪造的CMMI认证以及通过贿赂获得的真实认证非常普遍。


尤登仍然相信。但是他可能仍然相信世界将以Y2K结尾。

我个人不会对此抱有太大信心,也不想在将来与别人争吵。但是通常我们不是在说为什么...


传说有很多合同的美国国防部发现其许多项目都面临着时间和成本超支的问题,即使交付时,这些项目也不完全是订购的。

因此,他们希望有一种方法来确保承包商能够在预算范围内按时交付并接近所需的时间。因此,能力成熟度模型诞生了。

论文的论点是,如果把事情写下来,那么它们就会在磨损中幸存下来。但是说仅写下所有内容还不够,必须检查它们是否正确写下。除其他事项外。

在所有这一切中,它从未考虑过考虑执行所有这些操作的成本。因为从国防部的角度来看,如果它给一个项目提供了100万美元,一年之内就能获得某项东西,最终在10年内支付了1000万美元,却没有得到他们想要的东西,现在,花费500万美元购买同样的东西,以在两年内获得他们真正想要的东西,他们仍然节省了500万美元,更不用说他们实际上正在得到一些东西。

因此,如果您是美国国防部之类的承包商,请继续获取CMM,因为这是一项要求。但是,如果您正在与成千上万的软件开发商店竞争,希望获得预算,时间有限等项目,那么CMM并不是一个好的选择。

也就是说,请随时阅读CMMI Dev pdf(撰写本文时为1.3版)。这有很多好处。它很好地解构了组织。而且,如果您发现任何要点,那就可以了!我有这个问题",那么一定要运用这种智慧来解决您的问题。在我们的案例中,我们所做的一个小更改是确保我们列出所有被允许向我们提出要求的人员。如果允许一个以上的人给我们提出要求,那么任何来自一个来源的要求都会传给其他人,在我们将其添加到待办事项中之前,他们必须说"好"。这个微小的变化对我们工作和返工的数量产生了很大的影响。

简短地看一下过程区域,并将其与您的疼痛区域进行比较,并接受CMM的建议。实现方式是您自己的。而且,您始终可以以不花费太多时间或花费太多金钱的方式来实施它。但是我想即使是相关的ISO / IEC标准也是如此。


较小的项目较少依赖成功的过程。关键指标是英雄与旁观者比例。 HTBR小于0.2的任何项目都将面临严重的麻烦。


下一个CMM就是敏捷,两者都很脆弱。在任何行业中,过程和质量咨询领域都是一项不错的业务,就像工程人员一样,每个人都需要新的流行语来保持资金的流动。

CMM最初来自SEI时是一个很好的概念,它基于扎实的学术工作,但很快被过程顾问所采用,并且现在已是一文不值的认证,大多数CIO都使用它来掩盖自己的屁股(没有人被解雇)选择CMM 5级公司)

敏捷将很快沿着那条路线走,然后我们可以肯定的是很快就会看到下一个银弹:)


我曾经。但是现在我发现CMM和CMMI并不太适合敏捷方法。

哦,您可以紧紧捏着东西,把那个方形的钉子塞进圆孔,但是当一推再推时,您仍然会基于预测所需要的一切并预测将要遇到的一切的能力,来构建一个软件系统。

众所周知,这种方法在现实生活中效果如何! (-:

干杯,


有许多好主意可以被任何组织为了自己的利益而轻易地采用和采纳,但是由于需要各种冗余文档,因此获得徽章是很痛苦的。

问题在于CMMi并不是一个过程,而只是您可能选择拥有的任何过程的指南,并且它本身会引起四处流传的想法。

另一点是,迁移是您开始时的真正痛苦,但我想它与其他任何麻烦一样。


理解CMMi的价值的主要问题是了解CMMi本身。

CMMi是有记录的软件生产持续改进方法。

在制造过程中,了解使用SPC进行持续改进非常困难,但是添加无形软件产品则困难成倍。

我会向CMMi的新手推荐任何人或组织:记录他们当前的流程,然后看看可以独立于流程衡量哪些结果(成本/收益)。这样,如果更改了任何流程,标准程序,将会产生"更好"的结果。此练习的先决条件是有文件记录的,稳定的,可重复的过程,因为您不可能在不比较"按需赞美"的情况下衡量临时环境中任何更改的收益。

通过最初专注于上述概念,组织将开始理解并接受CMMi的基本价值。


在学校里,我被教导:CMM是一个好主意,但是缺乏认证(任何人都可以说他们是5级/ 4级),它最终成为了海上商店的营销工具。是的,这个想法很合理,但是您如何证明遵守?


当我从事商业飞行软件的开发时,我们使用了CMM,并且随着流程的改进,我们准确预测完成时间的能力也得到了改善。但这是一个繁琐的过程,其他方法也应同样有效。


推荐阅读