代码冻结期是专注于规划、文档和非部署任务的好时机。
译自 4 Steps to a Good Code Freeze,作者 Alex Quintana。
我仍然记得,就好像发生在昨天一样:我的工程经理粉碎了我的梦想。“我们一周内都无法部署。我们因为季度收益而处于代码冻结状态,”她再次告诉我。我计划用来超越 OKR(目标和关键成果)的 A/B 测试无法及时进行。
在季度收益或高峰流量季节等关键时期,代码冻结的概念在工程生态系统中是一种常见做法。实施代码冻结是为了防止在正常运行时间至关重要时发生事故并确保产品稳定性。但是,对于代码冻结是否是高峰时段的有效解决方案,以及开发团队是否仍然认为它们有用,目前还没有定论。
代码冻结是指 软件开发团队 停止将新代码更改部署到生产环境的一段时间。这种做法有助于在业务的关键时期(例如高峰流量(例如零售业的黑色星期五)或重大事件(票务网站发布泰勒·斯威夫特的门票))确保系统稳定性。目标是 最大程度地降低引入新错误 或可能中断服务的风险。
在代码冻结期间,开发工作将仅限于部署到暂存环境,或者将限制为本地功能分支。这允许开发团队在仍然能够合并的情况下保持势头,只是不能合并到生产环境中。此外,代码冻结是专注于计划、文档和不可部署任务的好时机。有效的沟通和准备对于管理代码冻结之前、期间和之后的流程至关重要,确保平稳过渡并保持系统可靠性。
以下是帮助确保成功进行代码冻结的四个步骤:
围绕任何代码部署(以及任何代码冻结)要采取的第一步是有效沟通。不要像我得知我们的 A/B 测试无法发布时那样,让你的产品团队措手不及。这不仅仅是关于正在部署的代码或被冻结的部署,而是关于管理整个组织的期望。更改应该在内部传达,突出显示潜在的面向客户的影响,并与相关团队协调任何响应。
例如:
在内部可见的共享仪表板中传达更改可确保从工程师到支持人员的每个人都知道正在部署的内容、其目的及其潜在影响。这种整体方法有助于管理期望并在关键时期减少摩擦。
部署冻结之前的时期通常会出现急于进行更改的情况,而之后的时期则可能类似于交通堵塞。无论是否进行正式冻结,都会发生这种情况。为了有效地管理这些时期:
交错的休假时间表可能会产生类似的问题。通过识别和规划这些模式,组织可以更好地管理工作流程并保持稳定性。
即使部署冻结被用来阻止工程师负担过多,但这并不意味着开发团队什么都不应该做。这段时间可用于执行不需要立即部署的任务,例如:
这种方法有助于在不影响系统稳定性的情况下维持生产力,并确保即使部署已暂停,团队仍可继续提供价值。
冻结期结束后,对所采取的方法进行审查至关重要。这包括:
这种持续改进循环确保组织从每次经验中学习,并随着时间的推移改进其方法。
无论是否进行部署冻结,事件都会发生。做好准备是有效管理事件的关键:
请记住,事件提供了宝贵的学习机会。它们促进了团队合作,提高了解决问题的能力,并带来了更好的系统和流程。通过做好充分的准备,组织可以将事件转化为成长和改进的机会。
通过采取上述每个步骤,组织可以顺利度过关键时期,并在 业务需求 与员工福祉之间取得平衡。