质量与投资回报率 - 什么时候足够好,足够好?

时间:2008-09-10 17:12:30

标签: methodology roi

更新:我是从开发角度中提出这个问题,但是为了说明,我想到的一个实际的非开发示例是,如果成本,请说,10,000美元 为了保持99%的正常运行时间,理论上它可以花费10万美元来保持一个速率 99.9%,可能还有1,000,000美元保持99.99%的利率。

有点像接近0的微积分,因为我们接近100%, 成本可以成倍增长。因此,作为开发人员或PM,您在哪里决定 考虑到时间和金额限制,可交付成果“足够好”,例如:你获得了99%的良好投资回报率,99.9%, 99.99%?

我正在使用非开发示例,因为我不确定开发的可靠指标。也许在上面的示例中,“正常运行时间”可以替换为“功能点到缺陷率”,或者一些合理的错误测量率与代码的复杂性。我也欢迎有关软件开发生命周期所有阶段的意见。

牢记经典Project Triangle约束(质量与速度与成本)。我们假设客户希望在给定原始预算的情况下提供最优质的服务

8 个答案:

答案 0 :(得分:7)

如果不知道当您的应用程序出现故障时会发生什么,就无法回答这个问题。

  • 如果有人在您的应用程序出现故障时死亡,那么正常运行时间值可能花费数百万甚至数十亿美元(航空航天,医疗设备)。
  • 如果您的软件发生故障,可能会有人受伤,正常运行时间价值数十万或数百万美元(工业控制系统,汽车安全设备)
  • 如果你的软件出现故障,如果有人损失数百万美元,那么正常运行时间就值得花费数百万美元(金融服务,大型电子商务应用程序)。
  • 如果你的软件发生故障,如果有人损失了数千美元,那么正常运行时间就要花费数千美元(零售,小型电子商务应用程序)。
  • 如果有人会在计算机上发誓并在软件停机时重新启动时失去工作效率,那么正常运行时间值得花费数千美元(大多数内部软件)。

基本上(降低成本)x(软件降低的次数),你知道在正常运行时间上花多少钱。

答案 1 :(得分:4)

质量与良好足够的讨论我见过的实际投资回报率为95%的缺陷修复。显然,显示止动器/关键缺陷是固定的(并且总是有例如飞机自动驾驶仪等,不需要那么多缺陷)。

我似乎无法找到95%缺陷修复程序的参考资料,它可以在快速开发或Caper Jones的应用软件测量中使用。

以下是攻击代码质量的有用策略的链接: http://www.gamedev.net/reference/articles/article1050.asp

答案 2 :(得分:3)

当然,客户可能会对这个数字感到不满,可能会说每年不超过1小时的停机时间是可以接受的。那是稳定的12倍。你告诉客户,对不起,我们不能以10万美元的价格做到这一点,或者你是否做了最好的尝试,希望你的分析是保守的?

平坦地告诉客户他们想要什么是不合理的。为了获得这种正常运行时间,需要大量的资金,而且实际上,不可能持续达到正常运行时间百分比的可能性。

我个人会回到客户那里,并告诉他们您将为他们提供100k的最佳设置并设置停机报告指南。对于你所遇到的每次停电,我们都会完成调查,了解为什么会发生这种停电,以及我们将如何做以使其再次发生的几率几乎不存在。

我认为提供SLA只是一个错误。

答案 3 :(得分:2)

我认为这个问题的答案完全取决于个人申请。

对人类安全产生影响的软件与RSS提要阅读器的要求有很多不同。

答案 4 :(得分:2)

项目三角形是一种粗略的简化。在很多情况下,您可以通过提高质量来节省时间。例如,通过减少维修和避免维护成本。这不仅适用于软件开发。丰田精益生产证明了这也适用于制造业。

软件开发的整个过程过于复杂,无法对成本与质量进行概括。质量是一个模糊的概念,由多个因素组成。可测试代码质量高于高性能代码吗?可维护代码的质量是否高于可测试代码?您是否需要RSS阅读器或高性能代码的可测试代码?对于电传操纵F16?

根据具体情况做出明智的决定更有成效。并且不要害怕过度投资质量。它通常比投资不足更便宜,更安全。

答案 5 :(得分:2)

以同样简单的方式回答.. ..当您停止听取客户的意见时(而不是因为他们停止使用您的产品)......除了增强请求和花束外:)

它不是一个三角形,它有四个角 - 成本时间质量和范围。

答案 6 :(得分:1)

为了扩展“17 of 26”所说的内容,答案取决于对客户的价值。在关键软件(如aircrafct控制器应用)的情况下,无论采用何种措施,高质量等级的客户的价值都非常高。对于RSS提要阅读器的用户来说,高质量的价值要低得多。

所有关于客户(注意我没有说用户 - 有时他们是相同的,有时他们不是)。

答案 7 :(得分:1)

追逐“质量”这个词就像追逐地平线一样。我从未见过100%质量的任何东西(在IT世界或外部)。总是有改进的余地。

其次,“质量”是一个过于宽泛的术语。它意味着每个人都有所不同,并且在实施程度上具有主观性。

话虽如此,每一项努力都归结为“工程”意味着什么 - 做出正确的选择以平衡成本,时间和关键特征(即速度,大小,形状,重量等)。这些是约束。< / p>