什么时候可以发货带有已知错误的产品?


Answers:


12

我假设您是在谈论“已知”错误(否则该问题将毫无意义)。好吧,答案取决于以下因素:

1)用户是谁?如果发现错误,他/他们将如何接受?

2)错误的潜在影响(损坏)是什么?

3)延迟发布软件以修复错误是否可行?

4)最重要的是:您对软件有什么期望?上市时间?质量?您是否想看看您的客户使用软件的时间是否足够长才能发现错误?


119

它必须总是可以的,因为没有没有错误的软件之类的东西。


2
但是听起来好像他知道该错误...因此,在那一点上,程序员似乎只是懒惰而不去解决它的问题...
Kenneth

7
@Kenneth:您可能会看到这样的情况,但是产品必须发货,而且它们总是有bug。是否要推迟期限取决于错误的严重性。
马特·艾伦

1
@马特这是真的。但是,在我看来,在大多数情况下,您都不想故意发货带有重大错误的产品。这意味着您所知道的其余错误将很小,在大多数情况下,这些错误很容易修复或至少可以解决。您无法处理您不知道的错误,但是如果测试过程正确完成,则应该捕获大多数错误……
Kenneth

1
也许我的讽刺不清楚,但说发布越野软件“总是可以的”是不负责任的。这就像在说:“世界上总会有杀人犯,所以我去杀几个人都没关系”。
DisgruntledGoat

7
@DisgruntledGoat并非所有的bug都是一样的:有些是容易修复的,有些是项目破坏性的灾难。显然,这些应该是固定的。有些是非常罕见的错误,基于异常情况很难发现,并且通常在不进行重大重写的情况下就很难修复。有时,由于修复它们所提供的价值太低,并且软件需要在昨天发货,因此仅需保留它们。其全部涉及成本/风险/收益分析。
CodexArcanum 2011年

33

它是一个判断电话。请记住,错误可能有很多。如果其主要功能无法正常使用,请先对其进行修复。如果它对应用程序的有用性影响很小或没有实际影响,则可以让它滑动。

因此,从成本/收益的角度来看它。

当运送已知缺陷的产品的总成本和修复缺陷的风险超过了任何可能带来的问题,并且由于存在缺陷而带来的负面影响时,您便会交付产品。

因此,如果您在发布前有2周的测试期,并且发现了一个小错误,那么问题是...正在修复该错误,现在团队需要花费另外2周的时间来重新测试应用程序和安装(经常忘记创建软件的步骤)?如果软件晚了,声誉或销售的成本是多少?人们会生气吗?如果可以按时交付主要功能,他们可能会很高兴遇到一个小错误。

风险包括引入新问题的风险,不仅是修复错误,还包括创建新安装可能引起的问题。

负面影响是处理报告错误的客户的时间和精力,以及声誉受损之类的事情。


30
您必须修正“关于”框中的错字。大约需要0.7秒(假设我们输入的速度相同)。但是,如果您留下该错字,人们会看到它。如果用户界面中出现明显的错误,则会立即失去用户对软件的信心。

这似乎对我来说是正确的。大多数时候,即使产品要发布,产品中也存在一些已知的小错误。它们往往是非常不寻常的事物,并且对软件的实际操作和使用或大多数用户从未看到的事物的影响可以忽略不计。
glenatron 2011年

3
确实,用户界面中的错别字打乱了产品质量的信念(错误的是,许多优秀的程序员只是不会说一口流利的英语),但是我明白你的意思-琐碎的漏洞不会造成真正的危害,甚至永远不会出现放弃推迟发布的麻烦不值得。将其保留为1.01中的要点。
Phoshi 2011年

不要让拼写错误进入您的应用程序。坦率地说,我比他们实际的错误更让他们感到尴尬。
ChaosPandion 2011年

1
我不知道你在说什么...;)
Andreas Johansson

6

错误的严重性不同。在我工作过的任何软件公司中,我们都按照从P0到P4的优先级对错误进行了分类。

P0是软件无法运行/崩溃,并且可能对客户业务造成损害。P1它不能按设计工作,并且在核心功能中始终崩溃P2它偶尔崩溃,或者某些侧面功能可能不起作用。P3该软件的某些元素未按设计/预期的功能工作。

我在P4无法修复的地方工作,因为它们对软件的影响很小。

我想说的是,如果您的软件已知P3 / P4问题,则可以发货。我将其放在发行说明中,并指出它们正在开发中。

我绝不会发布我所知道的P0,P1或P2问题的软件。


5

它称为“ 已知问题 ”。Google,Microsoft,Apple等都发布了带有已知和未知错误的产品。尽量减少它们,但不要等待完美。快速运送,经常运送。



0

当它是“功能”时!;)


值得一提的是,除非您是具有完善测试设置的完美程序员,否则,为了完美地测试每个代码路径并最终测试可能存在的代码路径,您将不可能交付没有错误的产品。

因此,务实的是,如果您在测试中遇到的所有问题都已修复,则应根据需要修复所有其他问题。


0

只要您对客户诚实,就可以附带错误。告诉他们所有现有的错误,就会向他们表明您对软件有很好的了解,并且确实经过了很好的测试(如果确实如此)。:)

显然,最好的办法是避免附带错误。


0

通常,最好是按时发货并列出已知问题,而不是根本不发货。

在编程世界中,使人们对项目充满信心的一件事是他们是否已计划发布,以及时间表是否成立

这就是为什么Ubuntu仍然每半年发布一次的原因,即使仍然存在未解决的问题。


0

我会说,一个很好的经验法则是,“此bug是不是表现出色?”

如果该错误导致“快乐路径方案”失败,则绝对不附带该错误。

如果该错误导致“正切路径”失败,并且没有解决方法,则不要附带该错误。

如果记录了一个错误,并且有一个已知的解决方法,则可以随该错误一起提供。


0

从消费者的角度来看……从不。我的观点是,只要您知道软件中存在重大错误,就永远不要发货。但是,如果软件的生产周期现在处于可能损害业务模型的阶段,并且自然的(业务)力量会覆盖这一点,并且它们是不会导致的小错误:(i)损害软件的安全性(ii)影响可用性


0

正如人们所说,这是一个非常广泛的问题。实际上,这使我进入了一个有趣的角度:您声称的所谓“错误”仅是测试人员发现的错误。可能会有更多的漏洞。刚刚让我想起了我在一次研究生研讨会上从一位受人尊敬的教授那里听到的有趣故事:当一个斯堪的纳维亚国家的人们使用“可识别手写”的投票机时,某些人通过编写恶意的SQL代码来入侵整个系统(系统作为正常输入)。


0

有一种叫做FMEA(故障模式和影响分析)的东西,它基于以下几个因素来判断已知错误何时重要很重要:

  1. 发生
  2. 严重程度
  3. 侦测

0

另一个决定性因素可能是缺陷与您的最新版本的关系。如果错误是新功能但已损坏的功能的一部分,则非功能性并不表示功能的退化。继续运送。

另一方面,如果缺陷导致丢失现有功能,而现有功能已知对现有客户有用,那么它必须阻止发布。这样的发行版对您的客户而言是降级的,对您的利益和他们的利益都不起作用。

可能会有灰色阴影。核心功能的衰退永远都不会消失。如果该发行版还包含他们已表示感兴趣的新功能,则外围功能可能会有些退缩,从而导致领先用户。不太可能影响许多客户的模糊缺陷也可以纳入发行版,只要能够在以下情况下提供解决方法:确实会影响那些客户。默认情况下处于关闭状态的高度试验性功能的缺陷永远不会导致发行被延迟。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.