实现DevOps:团队成长与挑战应对
在软件开发与运维的领域中,实现高效的DevOps实践是众多团队追求的目标。这不仅涉及到技术层面的提升,更关乎团队协作、流程优化以及对问题的正确处理方式。
明确“完成”定义的价值
团队对于“完成”的定义,即对完整代码含义的简单声明,会随着时间而变化。以微软的Azure DevOps团队为例,他们最初将代码定义为“潜在可发布”,随着时间推移,演变为“已发布”。引入更好的遥测技术和基于假设的开发后,交付团队将“完成”的定义进一步更新为“在生产环境中运行,并收集遥测数据以验证推动部署的假设”。这一定义设定了以客户为中心的终点线,即只有当代码在生产环境中运行并收集到能证明是否达到预期目标的遥测数据时,工作才算真正“完成”。
Gary Gruver指出,明确的“完成”定义和金丝雀发布可以有效防止低质量的“热门”项目破坏发布速度。“热门”项目往往质量最差,这意味着发布中的其他项目必须等待这个糟糕的项目准备好后,发布分支才能投入生产,从而导致发布分支变长,发布频率降低。为解决这一问题,组织需要改变“完成”的定义。代码可以且应该引入,但在满足新定义之前,不应向客户公开。若组织要更频繁地发布,新的“完成”定义应包括:所有故事都已签字确认,自动化测试就位并通过,且不存在已知的开放缺陷。
遵循“你忽视的标准就是你接受的标准”这一军事公理,坚持一致且易于执行的标准,体现在商定的“完成”定义中,并在代码提交时严格执行,将有助于早期纠正质量问题,避免其在生产环境中演变成昂贵的问题。
团队努力与成果
随着时间推移,团队在“左移”运动中付出的努力开始显现成效。经过艰难的调整期,团队打破了孤立的QA团队,缺陷率和发
超级会员免费看
订阅专栏 解锁全文
19

被折叠的 条评论
为什么被折叠?



