为什么不在星期五部署?

时间:2010-01-22 07:04:27

标签: deployment web-deployment

Joel在StackOverflow播客#24中提到,FogCreek公司的政策是不在周五发布软件。但是,他没有详细说明原因。

我同意。在我的雇主,我们在周四晚上部署。所以我们周五要清理任何错过质量保证(QA)的错误。

然而,我的经理建议我们在星期五晚上部署,因为QA没有足够的时间在发布之前测试软件。我说,人们的周末计划怎么样?如果我们在星期五晚上部署,那么我们必须在周六工作以清除任何错过的错误 - 这很糟糕。

那为什么不在星期五发货?

*我们可能(不确定)需要做出这样的假设:在一个时区内有一个核心软件开发团队部署其公司的核心Web应用程序。

11 个答案:

答案 0 :(得分:74)

这不是只是的问题。可能还有其他相关的支持负担 - 向用户解释新功能,监控没有性能问题。

新版本通常意味着支持活动的短暂增长 - 所以安排在可用人数较少的情况下(或者对时间的反应更加不满时)是一个坏主意。

答案 1 :(得分:44)

你几乎回答了自己的问题。这是一个简短而甜蜜的理由:如果你在星期五发货,并且一个错误使其投入生产,通常没有人可以修复它或直到下周一与客户交谈。在最糟糕的情况下,这可能是几天的收入损失。

答案 2 :(得分:41)

永远不要在星期五部署,因为:

  1. 这是一周结束,所以人们不那么敏锐
  2. 这是一周的结束,所以人们无法修复错误
  3. 这是一周结束,所以人们无法回答问题
  4. 这是一周的结束,那你为什么要部署呢?

答案 3 :(得分:7)

我们避免在星期四星期五发布代码 - 没有人愿意花费他们的星期五来解决任务关键错误,并且很有可能即使我们确实在1天内产生了修复,它也将是至少在它被释放前的另一天,这意味着要么在周末工作,要么直到下周都没有修复。

答案 4 :(得分:6)

这取决于您的目标群体。 我们主要在星期五部署。我们基于浏览器的产品在全球范围内被客户使用,但主要是在办公时间。这意味着如果我们想确保我们不影响任何客户(印度和中东地区周六没有办公室工作),我们除了周日早晨之外没有任何时间,但通常我们会“妥协”并在周五下午部署。

如果我们之前在一个约会地点上工作,我们理想地希望在周二周围部署新的东西,因为活动在周末达到顶峰,奇怪的是,周一午餐时间。

无论如何,它归结为两个考虑因素。 1.什么时候对您的客户来说是最不具破坏性的(如果它是一个Web应用程序)和2.什么时候最适合开发团队来解决关键错误。

如果您担心开发人员在本周末接近马虎,那么您的QA渠道可能太短。

答案 5 :(得分:4)

我们通常在星期二部署,然后我们将在本周余下的时间内解决任何问题。这也取决于行业,如果周末没有工作也许可以在周五晚上部署,但如果他们正在工作,那么这不是一个好主意。

对于那些人来说,星期五(已经考虑过那个热门的日期|冷啤酒|两者)以及休假前几天都会变得更加草率; - )

答案 6 :(得分:4)

这实际上取决于您的应用程序以及周末的繁忙程度。

我们通常不会在星期五部署软件,但通常在星期六或星期日进行部署。我们发现星期天早上特别好,以尽量减少释放的影响。

这取决于您是否尝试最小化发布所需的任何停机时间的影响,或减轻任何潜在的错误。

在客户实际使用系统之前(在大多数情况下),您不会看到任何错误,因此如果您在周末使用率较低,则在星期五进行部署相当于在星期一早上进行部署。

另一方面,像网上购物这样的东西在周末往往会有更多的使用,所以你肯定不会在周五部署其中一个。

这还取决于您的非工作时间支持政策。如果您有随叫随到的人可以回滚软件,那么风险就会降低。不过,我宁愿在工作周内这样做。

我们通常在星期二至星期四部署内容,宁愿避开星期一(我们最繁忙的一天)和周末(当一个错误被忽视而导致问题时)

答案 7 :(得分:4)

应该 在星期五进行部署,这样你就可以整个周末进行清理并修复错误,然后你的团队其他成员会在周一注意到你的疏忽。

答案 8 :(得分:3)

我永远不会计划星期五的部署,除非我还打算周六在办公室验证它的工作正常,如果你因为滑倒而最终在星期五进行部署,那么你很有冲动的事情,远远不够最好等一下,让大家在周末冷静下来,然后在早上检查后于周一发货。

如果您的部署在周末运行,那么从周五晚开始可以让您有一个良好的开端,因为办公室通常会稍早清除,因此整体系统负载将低于星期一早上。

答案 9 :(得分:2)

我曾与一家有周五部署政策​​的公司合作;他们在以色列,周六通常是工作周的最后一天。总之...

在我上一家公司,该政策是在不迟于周二和周四的午餐时间向Ops提供部署包。这意味着他们有半天的时间来解决这个问题,如果最后阶段的QA出现问题,可以要求进行微调。 (任何其他QA都可以在一周中的任何时间发生,因为它不在线。)

如果Ops有时间这样做,那么在任何时候发布到除了live之外的任何环境都是正常的(当然,这应该在事前预订)但是永远不会释放到生活中:

星期一 - 糟糕,你刚刚从(希望是一个不工作的)周末回来,并且不会让你上周所做的一切都在你面前。 星期三 - 通常是一周中效率最低的一天,并且作为“工作中间”的一天。如果你的插槽是星期二而你因错误而错过了,那么星期三可能是一个糟糕的选择,因为你没有提供足够的时间来修复和测试这些漏洞。 星期五 - 来吧。真的吗?是星期五。如果这真的需要解释,那么你就没有足够的经验去做你所处的那种管理职位。但是说真的,这是因为周五的部署意味着志愿你的客户在周末进来,以便在现场测试你的工作环境。对我来说,这可能会打败你可能会为自己排队的任何愚蠢。

答案 10 :(得分:0)

我们很幸运能够充分利用时差,我们的办事处遍布全球。因此,在对客户进行更新时,我们会对客户进行安排,以便客户在一夜之间完成,以尽量减少对客户的影响。

当您控制软件的实施和部署时,这种方法很有效,但在网站上发布则完全是另一种动物。正如其他人所指出的,已经确保你有时间:

  1. 支持可能发生的怪癖和错误
  2. 支持过渡中的用户
  3. 最后一刻的热修复