质量与投资回报率-什么时候足够好,足够好?
更新:我是从开发的角度问这个问题,但是为了说明这一点,想到的一个典型的非开发示例是,如果它要花费10,000美元,
保持正常运行时间率为99%,则理论上要花费100,000美元才能保持正常运行时间
99.9%,可能还需支付1,000,000美元才能保持99.99%的利率。
有点像微积分接近0,因为我们接近100%,
成本会成倍增加。因此,作为开发人员或者PM,我们在哪里决定
鉴于时间和金钱的限制,可交付成果"足够好",例如:我们是否获得了99%,99.9%的良好投资回报率,
99.99%?
我使用的是非开发示例,因为我不确定开发的可靠指标。也许在上面的示例中,"正常运行时间"可以替换为"功能点对缺陷比率",或者某种合理的bug衡量率与代码复杂性之间的关系。我也欢迎我们提供有关软件开发生命周期各个阶段的信息。
牢记经典的Project Triangle约束(质量vs.速度vs.成本)。并假设客户希望在给定原始预算的情况下可以提供最好的质量。
解决方案
回答
我认为这个问题的答案完全取决于单个应用程序。
与RSS提要阅读器相比,对人的安全有影响的软件具有不同的要求。
回答
要扩展" 26之17"中所说的内容,答案取决于对客户的价值。就关键软件而言,例如飞机控制器应用程序,无论采用何种措施,对客户而言,高质量评级的价值都很高。对于RSS feed阅读器的用户来说,高质量的价值要低得多。
这全都与客户有关(注意,我没有说用户有时他们是相同的,有时他们不是)。
回答
如果不知道应用程序关闭时会发生什么,就无法回答。
- 如果有人在应用程序停机时死亡,那么正常运行时间值得花费数百万甚至数十亿美元用于(航空航天,医疗设备)。
- 如果软件出现故障可能导致某人受伤,则正常运行时间价值数十万或者数百万美元(工业控制系统,汽车安全装置)
- 如果有人因软件出现故障而损失数百万美元,则正常运行时间值得花费数百万美元(包括金融服务,大型电子商务应用程序)。
- 如果有人在软件出现故障的情况下损失了数千美元,那么正常运行时间就值得花费数千美元购买(零售,小型电子商务应用程序)。
- 如果有人在软件出现故障时重新启动计算机时发誓要降低计算机的工作效率,那么值得花数千美元购买(大多数内部软件)正常运行时间。
- 等等。
基本上花费(停机成本)x(软件停机的次数),我们便知道要花费多少时间才能正常运行。
回答
项目三角形是一个简单的简化。在很多情况下,我们可以通过提高质量来节省时间。例如,减少维修并避免维护成本。不仅在软件开发中如此,丰田的精益生产证明了这在制造业中也是可行的。
软件开发的整个过程过于复杂,无法概括成本与质量。质量是一个包含多个因素的模糊概念。可测试代码的质量是否高于性能代码?可维护代码的质量是否高于可测试代码?我们是否需要RSS阅读器或者性能代码的可测试代码?还有电传F16吗?
逐案做出明智的决定会更有效率。并且不要担心对质量的过度投资。与投资不足相比,它通常更便宜,更安全。
回答
以同样简单的方式回答
..当我们停止听取客户的声音时(不是因为他们停止使用产品而已)..除了增强要求和花束:)
它不是三角形,它有四个角成本时间质量和范围。
回答
追逐"质量"一词就像追逐地平线。我从未见过任何质量100%的东西(无论是在IT领域还是外部)。总有改进的余地。
其次,"质量"是一个过于宽泛的术语。这对每个人来说都意味着不同,并且在执行程度上是主观的。
话虽这么说,一切努力归结为"工程"的含义-做出正确的选择以平衡成本,时间和关键特性(即速度,尺寸,形状,重量等)。这些都是制约因素。
回答
客户当然会拒绝这个数目,并且说每年可接受的停机时间不超过1小时。稳定了12倍。我们是否告诉客户,对不起,我们不能以100,000美元的价格做到这一点,还是我们会尽力而为,希望分析是保守的?
平淡无奇地告诉客户他们想要的是不合理的。为了获得这种正常运行时间,需要大量资金,而实际上,不可能连续达到正常运行时间百分比的机会。
我个人将回头告诉客户,我们将为他们提供100k的最佳设置,并建立停机报告准则。像这样,对于我们遇到的每一次故障,我们都会完成一次调查,以了解这种中断发生的原因,以及我们将如何做以使其再次发生的可能性几乎不存在。
我认为提供SLA只是一个错误。
回答
我所见过的质量与良好程度的讨论在95%的缺陷修复中具有实用的投资回报率。显然显示出塞子/关键缺陷是固定的(并且总是有例外,例如飞机自动驾驶仪等,不需要那么多缺陷)。
我似乎找不到有关95%缺陷修复的参考,无论是在快速开发中还是在Caper Jones的应用软件度量中。
这是攻击代码质量的有用策略的链接:
http://www.gamedev.net/reference/articles/article1050.asp