我很好奇社区是否认为在我们停止开发的情况下使用"Code Freeze"一词是可以接受的,除了测试和修复bug.
发展情况
我们刚刚完成了我们的第三次也是最后一次冲刺,之后将进行"代码冻结"和2周的Q/A测试.这是一个很大的发布,一些组件开发超越了所有3个sprint.从历史上看,即使我们将其称为"代码冻结",我们仍然会提交代码来修复错误.
问题
每一个版本我都会尝试并纠正我的经理和同事,我们应该将其称为"功能冻结",因为很明显我们会在我们开始大量测试后立即找到错误并提交代码来修复它们.但是他们仍然坚持称其为"Code Freeze".有时我们仍然知道错误并声明"代码冻结".
维基百科的定义在这里似乎与我一致
分析
我怀疑将这些情况称为"代码冻结"是某种故意的双重思考,为利益相关者提供虚假的信心.或者我们假装处于"Code Freeze"状态,因为根据Scrum的说法,在每个sprint之后我们都应该有一个可发送的软件,这是我们对Scrum的期望.所以我们必须把它称之为Scrum所期望的而不是它真正的本质.
结论
我在分析这个吗?我只是发现忽视情况的现实是不健康的,应该放弃它,称之为不是或者解决根本问题.还有其他人有过与Code Freezes类似的经历吗?
我有一个运行无限循环的 python 程序,但是,每隔一段时间代码就会冻结。没有出现任何错误或任何其他消息来提醒我出现问题。我想知道 Kubernetes 是否有任何活性探针可以帮助捕获代码何时冻结,以便它可以杀死并重新启动该容器。
我有一个想法,让 python 代码在每次完成循环时生成一个定期日志。这样我就可以让活性探针每 30 秒左右检查一次日志文件,以查看文件是否已更新。如果在指定的时间后文件尚未更新,则假定程序冻结并且容器被终止并重新启动。
我目前正在使用以下 python 代码进行测试:
#Libraries
import logging
import random as r
from time import sleep
#Global Veriables
FREEZE_TIME = 60
'''Starts an infinate loop that has a 10% chance of
freezing...........................................'''
def main():
#Create .log file to hold logged info.
logging.basicConfig(filename="freeze.log", level=logging.INFO)
#Start infinate loop
while True:
freeze = r.randint(1, 10) #10% chance of freezing.
sleep(2)
logging.info('Running infinate loop...')
print("Running infinate loop...")
#Simulate a freeze.
if freeze == 1:
print(f"Simulating freeze …Run Code Online (Sandbox Code Playgroud) 我过去使用过Continuous Integration服务器取得了巨大的成功,并且没有必要在源代码控制系统上执行代码冻结.
然而,最近似乎无处不在,大多数商店在准备发布时使用代码冻结的概念,甚至是他们产品的新测试版本.这个想法甚至在我当前的项目中运行.
当您提前和经常办理登机手续,并使用单元测试,集成测试,验收测试等时,仍然需要冻结代码吗?
是否有更好的方法在SVN中实现代码冻结,而不是要求所有开发人员不签入任何新代码?
我们运行CruiseControl,它会自动将最新版本部署到环境中.因此,如果新代码进入,早期可用的构建将更改为最新构建.我希望部署的构建是来自特定分支/标记的构建,因此任何新的代码签入都不会影响已部署的构建.只有当我下次标记/分支时,才应再次部署新代码.我们怎样才能做到这一点?
svn version-control build-automation cruisecontrol code-freeze
我正在开展一个已经运行了很长一段时间的项目,我们正在进行产品的最终发布.
目前的测试工作已经发现系统中还有大约30个缺陷,但是我们没有时间来解决所有这些缺陷(我确信这是一种非常常见的情况).
我和不同的人讨论了代码冻结是否应该继续进行.目前,我的经理希望保持代码冻结,但是要在冻结和释放之间的窗口中修复剩余的关键缺陷(大约5周).我担心这不是一个实际的代码冻结,而是代码"搪塞"充其量.这些缺陷将由一组高级工程师进行分类,以确保只有剩余问题中的关键修复实际上得到了解决,但从初步看来,关键问题似乎占总缺陷缺陷的三分之二左右.
我知道,冻结代码会给开发人员带来一些心理上的好处,例如为所有工作提供固定的结束日期.然而,这似乎完全否定了我的经理公开讨论将在"冻结之后"进行的修复.
我想知道是否有其他人有类似的经历,或者可以就如何处理这种情况的最佳方法提供一些建议.我开始认为没有人在他们说他们要去的那天实际上冻结他们的代码库.
我们计划在代码冻结日从subversion中进行分支,以确保产品的最终发布版本与开发中继隔离,因此我不太担心影响发布版本的更改问题的产品.
谢谢,
Aidos
编辑:我想解释一下我的经理人思维的最好办法是,它不是一个真正的代码冻结,更多的是'功能冻结’的,但是所有的功能已经有一段时间的产品,现在我觉得这是一个粗略过度简化.
EDIT2:我想感谢大家的伟大的答案,可惜我只能标记一个乐于助人,即使所有的7个答案至今一直非常有帮助的.
code-freeze ×5
agile ×1
kubernetes ×1
logging ×1
process ×1
python ×1
scrum ×1
svn ×1
testing ×1