内容提要
文章探讨AI时代软件工程中代码审查的瓶颈,提出以自动化验证取代人工审查。核心观点是将人类角色从“在环内”转为“在环上”,即维护自动化系统而非逐行审查。建议设立“自动化验证工程师”岗位,从1%的提交开始,逐步提高无需人工验证的比例,并借鉴CI/CD和芯片制造的质量控制经验,构建多层防护网。
延伸解读
从“在环内”到“在环上”的角色转变
文章提出,AI时代工程师的角色正从亲自审查每一行代码,转变为维护自动化验证系统。这种“在环上”的模式,意味着工程师更像工厂的维护者,而非手工艺人。这一转变要求团队重新定义职责,并建立新的技能组合,以适应自动化程度更高的开发流程。
自动化验证工程师的定位与价值
文章建议设立“自动化验证工程师”岗位,专注于构建测试和验证的自动化。这一角色类似于SRE,但聚焦于质量。其核心价值在于,通过提供快速、可靠的反馈信号,显著提升AI代理的迭代效率,从而加速整个工程组织。这并非取代工程师的质量责任,而是将质量内建到系统中。
从1%起步的渐进式策略
文章提出,无需人工验证的代码交付应从1%的提交开始,逐步扩大比例。这类似于CI/CD的演进,需要建立配套的监控、回滚等机制。关键在于识别低风险变更,并通过自动化防护网(如瑞士奶酪模型)来保障安全。这一过程需要持续跟踪和改进,而非一蹴而就。
Q&A
为什么传统代码审查在AI时代会成为瓶颈?
因为AI代理编写代码的速度远超人类审查的速度,人工审查无法跟上代码量的增长,导致审查成为瓶颈。传统审查依赖人工注意力,效率低且无法提供强保证。
什么是“在环上”和“在环内”?
“在环内”指人类亲自审查和批准每个变更;“在环上”指人类维护自动化审查系统,只在系统需要调整时介入。文章主张从“在环内”转向“在环上”。
自动化验证工程师(AVE)的职责是什么?
AVE专注于自动化测试和验证,负责构建和维护自动化质量保障系统,类似SRE对可靠性的职责。他们不承担所有质量工作,而是将质量内建到开发流程中。
如何开始实现无需人工验证的代码交付?
从1%的提交开始,选择风险低的代码部分(如CODEOWNERS变更),建立自动化验证和回滚机制,逐步提高无需人工验证的比例,并持续改进。
自动化验证与人工审查相比有哪些优势?
自动化验证是确定性的、可扩展的,不依赖人类注意力,能提供快速可靠的反馈,提高代码质量和交付速度,而人工审查效率低且不稳定。
文章提到的“瑞士奶酪模型”在代码审查中如何应用?
通过多层自动化检查(如测试、静态分析、安全扫描)叠加,形成多重防护,即使某一层失效,其他层也能捕获问题,确保代码质量。
Anthropic在自动化验证方面有什么实践?
Anthropic已投资于自动化验证,并从中受益,但该实践仍处于早期阶段。Claude Code代码库的泄露也展示了其中的挑战。
传统QA流程存在什么问题?
传统QA是下游流程,工程完成后交给QA发现问题,导致质量责任分离,效率低下。文章建议将质量门内置到开发流程中,而非事后检查。