Joel在StackOverflow播客#24中提到,FogCreek公司的政策是不在星期五发布软件.但是,他没有详细说明原因.
我同意.在我的雇主,我们在周四晚上部署.所以我们周五要清理任何错过质量保证(QA)的错误.
但是,我的经理建议我们在星期五晚上部署,因为QA没有足够的时间在发布之前测试软件.我说,人们的周末计划怎么样?如果我们在星期五晚上部署,那么我们必须在星期六工作以清除任何错过的错误 - 这很糟糕.
那么为什么不在星期五发货呢?
*我们可能(不确定)需要做出这样的假设:在一个时区中有一个核心软件开发团队部署其公司的核心Web应用程序.
这不仅仅是一个错误的问题.可能还有其他相关的支持负担 - 向用户解释新功能,监控没有性能问题.
一个新版本通常意味着支持活动的短暂高峰 - 所以安排在可用人数较少时(或者当时对时间有更多的不满时)会发生这种情况是个坏主意.
永远不要在星期五部署,因为:
这是一周结束,所以人们不那么尖锐
这是一周结束,所以人们无法修复错误
这是一周结束,所以人们无法回答问题
这是一周的结束,那你为什么要部署呢?
你几乎回答了自己的问题.这是一个简短而甜蜜的理由:如果你在星期五发货,并且一个错误使其投入生产,通常没有人可以修复它或直到下周一与客户交谈.在最糟糕的情况下,这可能是几天的收入损失.
我们避免在星期四或星期五发布代码- 没有人愿意花费他们的星期五来解决任务关键错误,并且有可能即使我们确实在1天内产生了修复,它至少会在它发布之前的另一天,这意味着要么在周末工作,要么直到下周才能修复.
这取决于您的目标群体.我们主要在星期五部署.我们基于浏览器的产品在全球范围内被客户使用,但主要是在办公时间.这意味着如果我们想确保我们不影响任何客户(印度和中东地区周六没有办公室工作),我们除了周日早晨之外没有任何时间,但通常我们"妥协"并在周五下午部署.
如果我们之前在一个约会地点上工作,我们理想地想在周二部署新的东西,因为活动在周末达到顶峰,奇怪的是,周一午餐时间.
无论如何,它归结为两个考虑因素.1.什么时候对您的客户来说是最不具破坏性的(如果它是一个Web应用程序)和2.什么时候它最适合开发团队来解决关键错误.
如果您担心开发人员在本周末接近马虎,那么您的QA管道可能太短.