十年前,当我第一次遇到CMM for software时,我想像许多人一样,对于在许多企业中描述混乱的“一级”软件开发状态的准确程度感到震惊,尤其是它的参考依靠英雄。它似乎也为组织提供了切实可行的指导,以提高其流程水平。
虽然它似乎提供了一个良好的模型和现实的改进指导,但我从未真正目睹过遵守CMM对我曾为之工作过的任何组织产生重大积极影响。我知道有一家大型软件咨询公司声称CMM级别5 - 最高级别 - 我可以看到他们的流程一样混乱,他们的软件产品质量与其他非CMM业务一样多。
所以我想知道,根据CMM,有没有人从遵守流程改进中看到真正的,实实在在的好处?
如果你看到了改进,你认为改进是否特别归功于CMM,还是替代方法(如six-sigma)同样或更有益?
还有人还相信吗?
顺便说一句,对于那些还没有看过它的人来说,看看这个有趣的 - 因为它真实parody
答案 0 :(得分:13)
我发现它很臃肿,文档练习主要用作合同获取/维护工具。一旦我们签了合同,那就是绕过这个过程的练习。
作为一名开发人员,我从中没有得到任何东西,但却失去了我职业生涯中的一小部分 - 与CMMI一起放屁。
同样适用于6 Sigma,我将其称为“盒子中的常识”。我不需要接受培训如何弄清楚问题对于一个过程是什么 - 它通常非常明显。
对我来说,小团队和敏捷机制的工作要好得多。周期短,沟通多。这可能不适用于所有环境,但它肯定适用于我的。
只是我的两分钱。
答案 1 :(得分:13)
问题的核心在于这个问题,由CMM指导本身巧妙地描述......
“ ...正确判断是必要的,以正确使用CMM并有洞察力。智力,经验和知识必须在特定环境中形成对CMM的适当解释。该解释应基于组织和项目的业务需求和目标。 CMM的死记硬背,面向核对清单的应用程序有可能损害组织而不是帮助它...... “
来自卡内基梅隆大学软件工程研究所的能力成熟度模型,改进软件过程指南的第14页,第0页,ISBN 0-201-54664-7。
答案 2 :(得分:10)
对于典型的CMM 1级编程车间,努力达到2级是值得的;这意味着您需要考虑流程并将其写下来。当然,这将受到牛仔程序员的抵制,他们感到受到标准,文档和测试用例的限制。
从第2级(“有一个过程”)到第3级(“每个人都有相同的过程”)的努力通常会陷入部门间的战争中,所以它可能不值得开始。
答案 3 :(得分:9)
如果您看到CMM运行。跑得快。
答案 4 :(得分:6)
CMM和CMMI都可以提供一些好处,如果您的组织采取它试图教导的内心。问题是,达到更高的水平是非常困难和昂贵的,而且我唯一一次看到一个组织经过努力是因为他们的客户不会让他们在合同上竞标,直到他们达到一定水平。
这就是组织尽其所能“只是获得号码”的效果,而不是真正关心它改进他们的过程。
答案 5 :(得分:5)
更高端? CMM-5商店没有给我留下深刻印象。
低端?是。 CMM-1组织吓到我了。
CMM可以帮助新手/新手团队衡量自己并做自我改进。答案 6 :(得分:4)
CMMI并非真正关于改进您的软件,而是关于记录您所做的事情。您几乎可以通过其生成的文档的权重来估计公司的CMMI级别。
背景:我已经在我的软件工程研究生课程中学习过CMMI,并且已经在一个遵循其指导方针的团队中工作。
答案 7 :(得分:4)
我的经验是,CMM非常模糊,很容易实现。此外,当他们来认证您时,他们会查看您的组织选择的项目。在我以前工作的地方,这个项目没有真正的截止日期,有足够的资金,还有很多时间花在每个角落和过程中。许多其他项目在没有版本化软件的情况下仍然很少甚至没有代码/设计审查。
我认为强调CMM认证是不幸的。公司知道如何使用系统,并且做到了。他们专注于获得认证并使用系统,而不是专注于满足其底线的实际流程改进。老实说,我认为大多数组织宁愿花时间在前者身上而不是在后者身上浪费那么多时间。
真正重要的是拥有尽职尽责的人,他们希望做出良好的发展决策并知道他们需要帮助做出这些决定。对于那些知道编程是一项正在进行的团体活动的高质量程序员来说,没有什么可以替代的,他们就像其他人一样犯错误。
答案 8 :(得分:3)
出售书籍/培训课程/认证的所有正式方法都存在,而且没有其他原因。这就是为什么有这么多正式的方法。一旦你意识到这一点,你就可以自由: - )
答案 9 :(得分:3)
我一直在为进行迭代开发的小团队进行大量的采访。就个人而言,如果我在简历中看到CMM,那么这是一个大红旗,表明对结果感兴趣。
答案 10 :(得分:2)
P.S。虽然有点偏离主题,但我想提一下,伪造的CMMI认证非常普遍,以及通过贿赂获得的真实认证。
答案 11 :(得分:2)
CMM并不真正谈及软件的质量,而是更多地关注流程的文档和可重复性。换句话说,可以有一个有序且可重复的开发过程,但仍然会创建糟糕的软件。只要该过程得到适当记录,就可以实现CMM 5级。
在一天结束时,CMM是另一种可以使用或滥用的工具。如果最终目标是提高软件质量,则可以使用CMM来改进开发过程并提高软件质量。如果达到某个CMM级别是目标,那么很可能软件质量将受到影响。
答案 12 :(得分:2)
Yourdon仍believes。但他可能仍然相信世界将以Y2K结束。
这不是我个人非常信任或希望将来与之相关的东西。但通常我们的理由不是......
答案 13 :(得分:2)
模型正在失去它的可信度,首先是因为公司采用的模型不是寻找成熟的软件开发模型,而是被评估为CCMI级别。
另一个问题,我认为导致失去信誉的问题是,作为承包商,您无法保证您的CMMI评估供应商所销售的项目将使用模型实践进行开发。 CMMi标签仅表明该公司曾经开发过被评估为特定CMMi成熟度级别的支持者的项目。
问题不仅在于CMMi,还在于公司开发的流程。 CMMi没有描述过程本身,而是过程应该做什么。你对PMBOK也有同样的问题。实际上问题不仅仅是PMBOK,而主要是问题是声称遵循PMI声明的坏项目经理。
答案 14 :(得分:1)
有很多好的想法可以很容易地被任何组织调整和采用,但是由于需要各种冗余文档,因此获得徽章会很痛苦。
问题在于CMMi不是一个过程,而只是您可能选择拥有的任何过程的指南,而这本身就会引发半生不熟的想法。
另一点是,当你开始时,迁移是一种真正的痛苦,但我认为它与任何其他出牙问题一样。
答案 15 :(得分:1)
了解CMMi价值的主要问题是了解CMMi本身。
CMMi是一种文档化的软件生产持续改进方法。
了解SPC的持续改进在制造过程中是非常困难的,但添加了无形的软件产品,难度是指数级的。
我会向CMMi的新人或组织推荐:记录他们当前的流程,然后查看可以独立于流程测量的结果(成本/收益)。通过这种方式,如果任何过程,标准程序被改变,它将产生“更好”的结果。本练习的先决条件是一个记录良好,稳定的可重复过程,因为无法在ad-hoc环境中衡量任何变化的好处,因为您没有比较“喜欢和喜欢”。
通过最初关注上述概念,组织将开始理解并接受CMMi的基本价值。
答案 16 :(得分:1)
所以他们想要一种方法来确保承包商能够在预算范围内按时交付并接近所需要的。因此,能力成熟度模型诞生了。
论文是,如果事情被写下来,那么他们就会幸存下来。但是说写下所有内容是不够的,必须检查它们是否正确写下来。除其他外。
在所有这些中,它从未想过要考虑完成所有这些的成本。因为从美国国防部的角度来看,如果它以100万美元的价格出售了一年内得到的东西,最终在10年内支付了1000万美元并且没有得到他们想要的东西,现在如果他们改为为了获得他们在两年内真正想要的东西而支付500万美元,他们仍然可以节省500万美元,更不用说他们实际上得到了什么。
因此,如果您是美国国防部的承包商或类似的东西,请继续前进并获得CMM,因为这是一项要求。但是如果你正在与1000多家软件开发商店竞争,那么预算有限,时间有限等项目...... CMM不是一个好的选择。
也就是说,随时阅读CMMI Dev pdf(撰写本文时为1.3版)。它提出了很多好处。它非常好地解构了组织。如果你看到任何让你去的点'啊哈!我有这个问题',然后一定要用这种智慧来解决你的问题。在我们的案例中,我们做出的一个小改动是确保我们列出所有允许给我们要求的人员。如果有多个人被允许给我们要求,那么来自一个来源的任何要求都会传递给其他人,并且在我们将其添加到积压工作之前他们必须说“好”。这个微小的变化对我们的工作和重做工作产生了很大的影响。
简而言之,请查看过程区域并将其与您的疼痛区域进行比较,并采纳CMM提供的建议。你实现它的方式是你自己的。而且你总能以不花太多时间或花太多钱的方式实现它。但我想这同样适用于相关的ISO / IEC标准。
答案 17 :(得分:1)
当我使用商用飞行软件时,我们使用CMM,因为我们的流程提高了我们准确预测完成时间的能力。但这是一个繁琐的过程,其他方法也应该起作用。
答案 18 :(得分:1)
较小的项目较少依赖于成功的过程。关键指标是英雄与旁观者比率。任何HTBR小于0.2的项目都会遇到严重问题。
答案 19 :(得分:1)
敏捷是下一个CMM,两者都很脆弱。流程和质量咨询领域在任何行业都是一项很好的业务,就像工程人员一样,每个人都需要新的流行语来保持资金流动。
首次出现在SEI上的CMM是一个很好的概念,基于扎实的学术工作,但它很快被工艺顾问选中,现在是一个毫无价值的认证,大多数CIO用它来掩盖他们的屁股(Nobody)因挑选CMM Level 5公司而被解雇了)敏捷将很快走下那条路,然后我们可以确定很快看到地平线上的下一颗银弹:)
答案 20 :(得分:1)
我曾经。但现在我发现CMM和CMMI并不能很好地适应敏捷方法。
哦,你确定可以挤压东西,将方形钉子钉入圆孔,但是当推动推进时,你仍然可以将你的方法基于预测所需的一切,并预测将要遇到的一切,在构建软件系统时。
我们都知道,这种方法在现实生活中的效果如何! ( - :
欢呼声,
罗布
答案 21 :(得分:1)
在学校,我被教导:CMM是一个好主意,但缺乏认证(任何人都可以说他们是5级/ 4级)它最终成为离岸商店的营销工具。所以,是的,这个想法是合理的,但你如何证明坚持?