我一直对此感到好奇。“生产就绪”或其变体到底是什么意思?最近,我在寻找有关sqlite的信息并找到了该线程,许多人认为sqlite尚未准备好进行生产。
我知道开发/测试与生产之间的区别;我对生产的定义是提供给客户或将由非程序员使用的任何产品。
但是,似乎有很多项目尚未定义为可投入生产。但实际上,它们可能是非常合适的,人们只是对它们有一个偏见,例如sqlite,python,非MS产品等。
小型办公室还是企业?单用户还是多用户?客户端还是服务器?您在哪里划界线?
我一直对此感到好奇。“生产就绪”或其变体到底是什么意思?最近,我在寻找有关sqlite的信息并找到了该线程,许多人认为sqlite尚未准备好进行生产。
我知道开发/测试与生产之间的区别;我对生产的定义是提供给客户或将由非程序员使用的任何产品。
但是,似乎有很多项目尚未定义为可投入生产。但实际上,它们可能是非常合适的,人们只是对它们有一个偏见,例如sqlite,python,非MS产品等。
小型办公室还是企业?单用户还是多用户?客户端还是服务器?您在哪里划界线?
Answers:
取决于你是谁。
程序员对“生产就绪”的定义:
管理层对“生产就绪”的定义:
很抱歉重新提出这个旧问题,但我遇到了这个问题,无法抗拒。
有许多定义可用于“生产就绪”。
下面列出了我自己的个人解决方案-它们都有些实用,并且非常依赖于上下文-在某些情况下,相同的精确解决方案可以视为“生产就绪”,而在另一种情况下,相同的解决方案有时(从字面意义上讲)是“已准备好在我的尸体上生产”。
以下所有定义均假定“生产”具有“某些严重结果取决于产品成功运行”的上下文。
换句话说,运行“内华达州最佳兰花”免费论坛的软件每月可为您带来3美元的AdSense收入,这远远超出了生产环境”,而航天飞机固件正是在这种情况下。
其他所有内容都是规模化的,有些东西有些灰暗(例如,一些软件在进行学术研究-一方面,如果在一般情况下中断,则不会对生产产生明显影响;另一方面,数十亿美元的政治决策由政府根据一些具体研究做出)。
我现在可以提出2个定义:
在标准风险分析下,可用于发生故障时暗示有重大损失的目的。
这并不意味着不能保证没有破损/错误-没有软件可以做到-而是可以达到预期目的的稳定性的合理程度的确定性。
例如,使用此解决方案的好处要大于破损的潜在损失量乘以破损的可能性。
因此,Java臭名昭著的“不用于核电站”免责声明。
可以合理预期您的同行已经通过了尽职调查。
例如,如果发生诉讼,如果要求您来自给定领域的N位随机专家集合“给出这些详细信息,那么该产品准备好了吗?”,则您可以合理地确定大多数此类专家会同意您的意见,根据您在这种情况下可以合理地进行的调查和工作努力,做好准备。如果您未能编写超过10%的测试用例,则您的“尽职调查”将失败。如果您的程序由于gcc编译器中的一个先前未知的错误而失败,则除非您的软件运行的是至关重要的东西,并且必须对它进行仔细检查才能发现该错误,否则您可能不会失败。