78%的人说写代码更快了,79%的人说交付没加速。这两个数字来自同一份报告,同一批受访者。GitLab委托Harris Poll调研了六个国家1,528名DevSecOps专业人员,得出了这个看似矛盾的结果。写得更快,交得更慢,或者至少没有同比例变快,这不是工具的问题,是系统的问题。
提速了,但只在一个环节
91%的组织已经部署了两个或更多AI编码工具,54%有三个以上。这个渗透率说明AI编码不再是试点,是基础设施。78%的开发者明确表示,用了AI之后写代码和提交代码变快了。73%的人甚至认为代码质量有所提升。
单看这些数字,AI编码工具干得不错。但79%的受访者同时承认:个人开发效率确实上去了,整体软件交付流程没有跟上同样的节奏。GitLab把这种现象称为"AI悖论"。写代码的环节被压缩了,但代码离开开发者编辑器之后的旅程,没有变得更顺畅。
你想想一个功能从想法到生产要经过什么:写代码只是其中一段。需求对齐、代码审查、安全扫描、集成测试、合规检查、部署、事后监控,每一段都有自己的节奏。AI把其中一段踩了油门,其他路段还是原来的限速。
瓶颈搬家了
85%的受访者说得很直白:瓶颈已经从写代码转移到了审查和验证。84%的人认为,AI生成代码最大的挑战不是生成,是生成之后拿它怎么办。
一个被广泛引用的数据是,开发者现在只花16%的工作时间写新代码。如果这个比例在AI之前是30%或者更高,那AI确实把写代码这件事的效率榨出来了。但省下来的时间没有变成交付速度,而是变成了审查队列里的等待时间。把各阶段的耗时变化摆在一起看,瓶颈的位置一目了然。
| 交付阶段 | AI普及前的相对耗时 | AI普及后的相对耗时 | 变化方向 |
|---|---|---|---|
| 编写新代码 | 100 | 55 | 明显缩短 |
| 代码审查 | 100 | 130 | 拉长 |
| 安全与合规验证 | 100 | 125 | 拉长 |
| 集成与回归测试 | 100 | 115 | 略有拉长 |
| 生产事故追溯 | 100 | 140 | 显著拉长 |
这张表里的数字不是精确测量,是把前面那些百分比换算成相对趋势后的示意。写代码这一格在缩短,后面四格全在变长。净效果就是79%的人感受到的"整体交付没跟上"。
阿姆达尔定律在这里说得很清楚:系统的最大加速比受限于最慢的环节。如果你把写代码加速到接近无限快,但审查环节的吞吐量没变,整体速度的瓶颈就死死卡在审查上。审查需要人类判断,人类判断需要上下文,上下文需要时间积累。AI不解决这个。
分不清谁写的
43%的受访者承认,他们没法可靠地区分代码库里哪些是AI生成的,哪些是人类写的。这个数字放在治理语境下很刺眼。你不知道哪些代码是AI写的,就没法对它们做针对性处理。安全策略、审查深度、合规要求,全都无从谈起。
更麻烦的是工具链碎片化。40%的组织面临这个问题。代码托管在一个平台,CI/CD在另一个,安全扫描在第三个,AI编码助手在第四个。每个工具都有自己的数据模型,自己的上下文边界。AI生成的代码从编辑器出来之后,进入的是一个割裂的流程,没有哪一层天然知道这段代码的"出身"。
39%的系统干脆不跟踪代码来源。只有28%的受访者说他们的软件开发生命周期工具实现了完全集成,共享数据和流程。这意味着大多数团队在发生生产事故时,排查路径是断的。
87%的自信,34%的现实
87%的受访者相信,如果AI生成的代码导致了生产事故,他们的团队能在24小时内判断出来。这个自信度很高。但在过去一年真正经历过事故的组织里,34%做不到。自信和现实之间差了53个百分点。
这个差距不能简单归结为"能力不行"。工具不给你代码来源的元数据,你再有能力也追不出来。当一段出问题的代码和你手动写的代码在Git里长得一模一样,你没有线索去区分它是否来自某个Agent在某个时间点基于某个上下文生成的片段。
GitLab首席产品与营销官Manav Khurana在报告里说了一句话:速度没有控制就是负债,不是优势。过去几个月里发生的供应链攻击、可靠性事故、监管机构对AI可追溯性的收紧,都在往同一个方向推。你能生成多少代码是一回事,你能不能回答"这段代码从哪来、它要做什么、谁负责"是另一回事。
73%的人担心维护
73%的受访者担心AI生成代码的可维护性。82%的人认为AI代码可能制造出一种组织还没准备好管理的新型技术债。
这个担心不是凭空的。Sonar的一项研究发现,在测试的每一个大语言模型里,超过90%的问题都属于"代码异味",也就是那些不会立刻让代码崩溃,但会让长期维护越来越难的问题。AI生成的代码往往"看起来对",语法正确,逻辑表面通顺,但缺乏对系统约束的深层理解。它可能引入多余的依赖,可能忽略边界条件,可能用了一种在当前代码库里不合时宜的模式。
CodeRabbit的分析更直接:在470个PR的对比中,AI生成的代码平均每个请求产生10.83个问题,人类代码是6.45个,AI代码的问题密度是人类代码的1.7倍。这不是说AI代码不能用,是说用AI生成的代码进入代码库时,需要的审查不是更少,是更多。
而现实是,审查能力没有变多。PR数量在涨,审查的人还是那些。这就是85%的人感受到的"审查和验证成了新瓶颈"的具体来源。
三个问题和四个支柱
GitLab把AI问责制定义为回答三个问题的能力:这行代码从哪来,它要做什么,谁负责。听起来简单。但对于一个用四个工具、代码来源不标记、PR审查靠肉眼过的团队来说,这三个问题一个都答不上来。
对应的框架是四个支柱:保留上下文的一体化工具链、连接代码与意图的可追溯性、治理、平台内置而非事后附加。注意最后一个支柱的措辞------"内置而非附加"。治理不是代码写完以后再加一道扫描,治理需要存在于代码产生的那个时刻。
这意味着AI编码工具本身需要留下痕迹:这段代码是哪个模型在什么提示下生成的,参考了哪些文件作为上下文,经过了什么样的测试。这些信息需要一路伴随代码从编辑器到仓库到CI到生产。没有这个链路,事后追溯就是考古。
工程团队能做什么
不需要等平台厂商把一切做好。有几件事今天就可以做。
在提交信息里标记AI生成。格式简单直接,在commit message里加一行"AI-Generated: true",或者用一个专门的trailer字段。不要依赖记忆,记忆在六周后失效。这个标记本身不解决问题,但它是所有后续治理的起点。没有这个标记,后面的审查门禁、安全扫描、追溯查询都无从触发。
makefile
feat(payment): add retry logic for gateway timeout
AI-Generated: true
AI-Tool: claude-code
AI-Model: claude-sonnet-4
AI-Prompt-Hash: a3f9c2e1
Reviewed-By: human
Refs: PAY-1842
这个模板的每一行都有用途。AI-Generated是总开关,CI管线读到它就启用更严格的检查。AI-Tool和AI-Model回答"从哪来"。AI-Prompt-Hash让同一次提示产生的多个提交可以被关联起来排查。Reviewed-By: human是一个承诺位,表示有人类在这个提交上签过字。字段不追求一次到位,先有总开关,再逐步补细节。
在CI管线里加一个AI代码审查门禁。不是替代人类审查,是在人类审查之前先过一道自动检查。针对标记了AI生成的提交,可以配置更严格的安全扫描规则、更低的代码复杂度容忍阈值、强制要求测试覆盖率增量。下面是一段GitLab CI配置的示意,逻辑同样适用于GitHub Actions。
markdown
stages:
- lint
- test
- ai-review
ai-review-gate:
stage: ai-review
rules:
- if: '$CI_COMMIT_MESSAGE =~ /AI-Generated: true/'
script:
- echo "running strict review for AI-generated code"
- complexity-check --max 8 src/
- coverage-delta --min 5
- security-scan --level high
allow_failure: false
门禁的规则写在rules那一行:只有提交信息里带AI-Generated标记的才会触发。这样人类手写的提交走原来的快速通道,AI生成的提交走严格通道。allow_failure设为false,意味着这个检查不过,合并就被挡住。这不是不信任AI,是承认AI代码的问题密度更高,需要不同的处理方式。
把工具链至少做一次数据对齐。不需要一次整合所有工具,但至少要打通"提交→仓库→CI→部署"这条主链上的代码来源信息。如果AI编码助手生成的代码在提交时携带了模型和提示的元数据,这个元数据应该能在仓库的commit对象里保留下来,并且能被CI管线和部署系统读取。GitLab报告里只有28%的组织做到了生命周期工具的完全集成,但哪怕是两个相邻工具的打通,也能把追溯能力往前推一步。
在事故响应手册里加一条:如果涉事代码的提交信息没有AI标记,检查它是否来自AI Agent。43%的组织区分不了AI代码和人类代码,这个比例意味着当你排查事故时,"这段代码是谁写的"这个问题本身就需要一个排查步骤。把"检查AI生成可能性"变成事故响应的标准动作。
速度不是交付能力
AI编码工具确实让写代码变快了。78%的人确认了这一点。但交付不是写代码的同义词。交付是代码从想法走到生产、在生产里活下来、在需要的时候能被理解、在出问题的时候能被追溯的完整旅程。
85%的人已经看到了瓶颈转移到了审查和验证。87%的自信和34%的现实之间的差距说明,大多数组织还没有为这个转移做好准备。GitLab提出的三个问题和四个支柱不是学术框架,是对"你能不能控制自己生成的代码"这个问题的工程化拆解。
写代码更快了。这是好事。但如果代码从编辑器出来之后就进入了失控状态,快出来的那部分时间,最终会在别的地方还回去。治理不是给速度踩刹车,是让速度变得可持续。