前几天,一个朋友告诉我,有一个金字塔,即在软件开发生命周期中解决问题的成本。我在哪里可以找到这个?

他指的是解决问题的成本。

例如,

在需求阶段解决问题的费用为1。

在开发阶段解决问题的费用为10。

在测试阶段解决问题的费用为100

在生产阶段解决问题的费用为1000。

(这些数字只是示例)

如果有人有参考,我将有兴趣看到有关此的更多信息。

有帮助吗?

解决方案

修复软件错误的回报率降低的速度令人难以置信

Stefan Priebsh: OOP and Design Patterns: Codeworks DC in September 2009

(Stefan Priebsh:OOP和设计模式:CodeWorks DC 2009年9月)

其他提示

这是经验软件工程的众所周知的结果,在无数的研究中,已经一遍又一遍地复制和验证。不幸的是,在软件工程中非常罕见:大多数软件工程“结果”基本上都是传闻,轶事,猜测,意见,一厢情愿,一厢情愿或只是简单的谎言。实际上,大多数软件工程可能不应该获得“工程”品牌。

不幸的是,尽管是最稳定,最科学和统计上最合理的之一,经过最广泛的研究,最广泛验证,最常经常复制的软件工程结果,但这也是错误的。

问题在于所有这些研究都无法正确控制其变量。如果要衡量变量的效果,则必须是 非常 小心改变 只要 变量,其他变量不变 根本. 。不是“更改几个变量”,而不是“最小化对其他变量的变化”。 “只有一个”和其他“根本不是”。

或者,用精彩的Zed Shaw的话说:如果您想测量狗屎,请不要测量其他狗屎。

在这种特殊情况下,他们确实 不是 只需测量在哪个阶段(需求,分析,设计,设计,实施,测试,维护)发现了错误, 测量如何 它留在系统中。事实证明,阶段几乎无关紧要,重要的是时间。发现错误很重要 快速地, ,不是在哪个阶段。

这有一些有趣的后果:如果找到错误很重要 快速地, ,那么为什么要等待最有可能找到错误的阶段这么长时间:测试?为什么不将测试放在 开始?

“传统”解释的问题在于它导致了效率低下的决策。因为您假设您需要在需求阶段找到所有错误,所以您不必要地拖出需求阶段:您不能 要求(或架构或设计),因此 发现 您甚至无法 执行 怪异 难的呢基本上 定影 需求阶段中的错误很便宜, 发现 他们很昂贵。

但是,如果您意识到这不是要找到错误 最早可能的阶段, ,而是要找到错误 最早的时间, ,然后您可以对过程进行调整,以便您移动阶段 发现 虫子最便宜(测试)到时间点 定影 它们最便宜(从一开始)。


注意:我很清楚讽刺的是结束对未正确应用统计数字的大声疾呼,并完全未经证实的主张。不幸的是,我失去了阅读本文的链接。格伦·范德堡(Glenn Vanderburg)也在他的“真正的软件工程“在2010年孤星Ruby会议上谈话,但Afaicr也没有引用任何消息来源。

如果有人知道任何来源, 让我知道或编辑我的答案,甚至只是 我的答案。 (如果您能找到一个来源,您应该得到所有代表!)

参见第42页和第43页 这个演示文稿 (PDF)。

不幸的是,这种情况正如约尔格所描绘的那样,实际上有些糟糕:本文中引用的大多数参考文献使我成为虚假的,从某种意义上说,论文所引用的论文不是原始的研究,或者不包含支持所提出的主张的单词或 - 如果是 1998年关于休斯的论文 (p54) - 包含测量值 实际上 与演示文稿的p42曲线所暗示的内容相矛盾:曲线的不同形状,以及需求阶段和功能测试阶段之间的适度X5至X10因子(实际上在系统测试和维护中减少) )。

以前从未听说过它被称为金字塔,这对我来说似乎有些颠倒!尽管如此,中央论文还是被广泛认为是正确的。只是对此,在Alpha阶段修复错误的成本通常是微不足道的。在Beta阶段,可能需要更多的调试和用户报告。运输后可能非常昂贵。必须创建一个全新的版本,您必须担心破坏生产代码和数据,由于该错误,销售量也可能会丢失吗?

试试这个 文章. 。它使用“成本金字塔”论点(没有命名)等。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top