似乎在大型项目中,该软件经常仍会与充满错误的错误跟踪器一起发布。现在我可以理解功能请求了,但是好几次我仍然看到大量错误仍未解决,未审查或尚未完成,但仍然推出了一个版本。
为什么?为什么要发布一个开源项目或一个通常带有已知错误的项目?他们为什么不等到错误跟踪器打开了0个错误?
似乎在大型项目中,该软件经常仍会与充满错误的错误跟踪器一起发布。现在我可以理解功能请求了,但是好几次我仍然看到大量错误仍未解决,未审查或尚未完成,但仍然推出了一个版本。
为什么?为什么要发布一个开源项目或一个通常带有已知错误的项目?他们为什么不等到错误跟踪器打开了0个错误?
Answers:
多种原因,包括:
在很小的程度上,这就像在询问您为什么要作为程序员工作,即使您的编程知识不是“完整的”。在大多数复杂的项目中,会有很多很多错误。在添加新功能的同时进行处理是一项困难而复杂的任务。
因为有bug的软件总比没有软件好。
出于同样的原因:
具有已知缺陷的解决方案比没有解决方案或具有未知缺陷的解决方案要好得多。
我最喜欢的IDE具有很多新功能,远远不够稳定。只是说一句:我更喜欢每二十次必须手动执行某项操作,因为该功能会失败,而不是必须手动执行所有操作。
或者用伏尔泰的话说:“ Le mieux est l'ennemi du bien”。
最终,即使是免费和开源的软件,这也是一个商业决定。在某些情况下,存在的缺陷影响较小,最好将其发布,将软件交付用户使用并获得反馈(包括但不限于功能请求和未发现缺陷的新错误报告)在测试中)。该决定是由在竞争对手中吸引软件市场的需求所驱动的。如果您想让软件产生影响,则需要以新功能或新概念击败竞争对手进入市场。
一切都归结为成本与收益分析。每个错误修复都有一些与之相关的成本值(修复工时,在发布前X天进行更多代码更改的风险...)。同时,每个错误修复都在更多功能,可用性等方面明显带来了附加价值。
因此,这是每个开发团队在发布时都面临的问题:1)考虑到成本和附加值,Bug #i是否值得修复; 2)对从i = 0到N的所有打开的bug重复进行。
请记住,未发布的软件产品对任何人都没有价值。该软件产品具有200个未解决的错误,但其90%的功能正常工作,对于所有对发布时的工作原理感到满意的人都具有价值。
我从来没有在任何公司中发布过0个错误的产品,我认为那是完全正常的。在某个时候,您只是减少损失并利用有效的方法。否则,您将永远不会释放任何东西。
除了许多好的答案外,有时还会有新产品的市场竞相。如果您认为即使打开15%(或其他数量)的非关键缺陷,您也可以获得大部分市场份额,那么可能值得发布该产品以在竞争者中占优势。
我敢肯定,理想情况下,大多数开发人员都希望在其应用程序中看到零错误,可悲的是,条件可能不允许这种乌托邦状态。
我想相信这是因为用户群需要新功能,并且愿意承担相同或更多错误以增加功能。
如果涉及到管理人员,则由于多种原因需要按时完成任务-广告投放时间安排,其他人员空缺问题,“我们必须是第一位拥有此功能”的心态。
我的想法不太乐观,可能是因为开发人员很懒?
还要记住,在开放源代码社区中,通常“ whom”想要承担什么bug /功能/问题请求-也许没有人希望解决由于其背后的大问题而引起的问题。