乐于分享
好东西不私藏

AI落地为什么这么难?是因为多数人根本没意识到软件工程是「承重墙」

AI落地为什么这么难?是因为多数人根本没意识到软件工程是「承重墙」

AI工程 × 软件工程 — DNA双螺旋

最近在调研几个团队使用AI Coding的过程中存在哪些困难。

短短3天,发现了37个问题,让我觉得情理之中但是又意料之外的是:有整整20个问题都集中在软件工程和AI驾驭工程上。

情理之中是因为我有足够的预期,前几篇文章其实一直在讲,AI转型不能一上来就死磕代码,需要与代码、资产、流程建立链接《大型软件研发组织的AI转型如何起步?》;单点提效天花板有限,需要考虑全链路《AI Coding 不是终点:车企该用 AI 重塑整个软件研发体系》

意料之外是因为当现实摆在面前,还是惊异于数据的血腥,占比54%,居然多于一半。

这就是我最近一直在思考的越来越笃定的那个事: AI 转型是 AI 工程和软件工程的深度绑定。只有这两个工程深度绑定、互相作用,才有可能让 AI 的效力发挥到最大。

而同时我也意识到一个问题:AI落地之所以这么难,是因为很多人没有发现软件工程这堵「承重墙」。

因为这里的「深度绑定」有两层含义:

  1. 软件工程做得好,能够让AI转型更快;
  2. 使用AI也需要借助于软件工程的理念和实践,才能让AI本身发挥得更好。

01 旧世界里软件工程的成熟与否,让AI世界展现出了残酷的马太效应

这个世界的无奈之处就在于:

没有什么真正的捷径可言,你在之前欠的债是要还的。

从上世纪八九十年代起,Scrum、极限编程(XP)、敏捷(Agile)、DevOps 这些名词在软件行业响彻了二三十年。但其实,这些软件工程实践一直都没有真正落地到企业中,尤其是在中国市场。

说实话,即使投入再多财力、人力、物力持续做下去,也很难转化为踏踏实实的业务收益。

核心原因有三个:

软件工程难以落地的三个原因

第一,业务和产品的变化永远比工程化的速度更快。

前期抢住市场是关键,后期也不知道自己能活多久,所以工程化的ROI能不能为正没人敢打保票。

特别是在车企这种长周期、强监管、多方协同的行业,你今天做的工程化改造,可能要两三年才能在交付节奏上显出收益,而那时候业务方向、技术、芯片、供应商可能都变了。

第二,软件工程是反人性的,且对人员能力、人才密度的要求极高。

现实情况是99%的工程师是不愿意学习的。写单测、写文档、做重构、做持续集成——这些事都不性感,也不会在短期内让个人绩效更好看。

大家更愿意做”看得见的功能”,而不是”看不见的工程质量”。

第三,企业和领导对交付的真实诉求永远是——”做完就行”。

当然他们会认为”做好”是你应该的,而不是要额外花钱买的。如果你给他算一笔账,99%的企业是不舍得投入的。

以上,无论是在工期要求、投入预算、员工自身追求、文化号召上,都没有为「工匠精神」提供实实在在的资源保障。软件工程无法落地,也就见怪不怪了。

但是呢,AI转型快的,往往是软件研发体系做得好的、软件工程做得好的、数字化做得好的企业。这些好的基础才能让AI正常发挥。

软件工程的马太效应

需求规范不清晰、需求/架构设计与代码脱节、版本化管理混乱、80%的业务在线下、工具割据数据不同——这些问题在AI时代,都变成了真实的绊脚石。AI输出的质量就是不佳。

所以,当很多领导抱怨AI还不行的时候,极大的概率是自家的软件工程一团糟。

这不是给AI找借口。而是说:如果你家的代码仓库是一团麻,接口文档是三个月前的,测试覆盖率不到20%,自动化部署要靠人手动点——那AI进来之后,它生成的每一行代码都是没有根基的。

AI不会帮你还债,AI只会放大你的债务。在好工程上,AI是加速器;在烂工程上,AI是放大器。


02 AI的”原罪”——为什么它比人更需要工程约束

AI的”原罪”——为什么它比人更需要工程约束

很多人有一个误解:AI写代码和人类写代码,只是速度不同。

错。它们犯错的模式完全不同。

人类写代码出错,通常是可预期的——疏忽、理解偏差、经验不足、状态不好。一个资深工程师Review一个初级工程师的代码,大致能闻到”这里可能有问题”的味道。这种味道来自对人脑工作方式的理解。

AI写代码出错,是另一种物种的不可靠

第一,幻觉。

AI会生成看起来完全正确、语法优美、逻辑自洽,但实际上存在严重漏洞的代码。更可怕的是,它输出的时候充满自信。

一个初级工程师写错,他自己可能还不确定;AI写错,它自己深信不疑。人类Review AI代码时,会本能地降低警惕——”它写得这么像对的,应该没问题吧?”这就是最危险的地方。AI的Bug,闻起来是玫瑰味的。哈哈哈。

第二,不稳定。

同样的Prompt,同样的需求,过两天再跑一遍,结果可能就不一样。今天你让AI生成了一个函数,明天重构时让AI再理解一下,它可能给出完全不同的实现思路。

如果你依赖AI加速编码,却不建立严格的回归测试和自动化验证,等于在沙滩上盖楼。

第三,不可解释。

你不知道AI为什么这样写。它引用了什么训练数据?它漏掉了什么边界条件?它为什么在这个地方用了这种数据结构?

你问它,它会给你一个很流畅的解释,但这个解释本身也可能是编造的。你无法像理解一个同事的代码那样,理解AI的”思路”。

这三个缺陷,恰好落在软件工程最擅长的领域:

  • 自动化测试:验证AI产出是否真的正确,而不是”看起来正确”;
  • Code Review:聚焦于测试策略、边界条件和需求映射,用人的判断力来弥补机器的盲区,识别AI因缺乏业务上下文而遗漏的风险。
  • CI/CD 门禁:把验证、扫描、回归测试系统化,让AI产出不能绕过质量底线。

所以结论要翻转一下:

不是”AI来了,工程规范可以松了”,而是”AI来了,工程规范必须更严”。

因为AI的犯错模式比人类更隐蔽、更随机、更难靠直觉发现。

你以为AI在帮你省Review时间,其实它可能是在把你 Review 的防线变成最后一道防线——而它前面几道,已经失守了。


03 DNA双螺旋:软件工程和AI工程如何互相「喂养」

AI工程 × 软件工程 — DNA双螺旋

我用一个比喻来理解这两个工程的关系:DNA双螺旋

双螺旋有两条链,互相缠绕,中间靠氢键连接。单独一条链都撑不起生命,两条链在一起才稳定。

软件工程和AI工程的关系,也是这样。

左链:软件工程 → AI

软件工程为AI提供三样东西:

第一,约束。

测试框架、质量门禁、CI/CD流水线,给AI产出设定最低质量标准。

你生成的代码必须通过单测、集成测试、安全扫描、性能基准。

这些不是”卡”AI,是”兜”AI。

就像给孩子画一条马路中线,不是不让他跑,是让他跑得更安全。

第二,反馈。

CI/CD的自动化流水线给AI提供即时反馈。

代码合入率是多少?被Review打回来几次?Bug率有没有上升?测试通过率有没有下降?

这些数据反过来训练团队对AI的”信任校准”——知道在什么场景下该信AI多少,什么时候必须人工介入。

没有反馈,AI就是一个黑箱。

你让它写,写完就扔,永远不知道它写得好不好。

工程流水线把AI的产出结果变成了可观测的数据,这就是反馈闭环。

第三,落地场景。

软件工程沉淀的上下文——需求文档、架构设计、接口定义、编码规范、历史Bug模式——给了AI”为什么这么写”的背景。

没有这个背景,AI生成的就是”语法正确但业务无意义”的代码。它不知道你们的接口版本约定、不知道你们的安全合规要求、不知道你们的历史踩坑。

工程体系越成熟,AI能拿到的上下文越完整,它的”领域理解力”就越强。

右链:AI → 软件工程

AI反过来也为软件工程提供三样东西:

第一,扩展。

AI把工程师的能力边界往外推。

以前你要手写所有单元测试,现在AI可以生成初稿,你负责审核和补边界。以前你要逐个文件排查Bug,现在AI可以帮你定位可疑代码段。以前你要一个人写完整份技术文档,现在AI可以帮你生成第一版,你负责修改和完善。

工程师从”全手工劳动者”变成”质量把关者”和”方向判断者”。

第二,加速。

代码补全、文档生成、格式化、重构建议、重复代码识别——这些重复劳动交给AI之后,工程师的认知带宽被释放出来,可以处理更需要判断力的事情。

这种加速不是”取代”,是”释放”。它让工程师的时间从”写样板代码”转移到”做关键决策”。

第三,洞察。

AI在大量代码中识别出人看不到的模式——某段代码频繁出Bug、某个模块的耦合正在恶化、某类重复模式应该被重构。

这种洞察能力是软件工程”度量”维度的一次跃迁。

以前我们靠经验、靠直觉、靠事故复盘来发现问题;现在AI可以帮我们从数据里提前嗅到风险。

中间连接:氢键

两条链之间不是松耦合,是氢键级别的紧耦合

  • 测试不只是约束AI,测试数据反过来训练AI对质量的判断;
  • Code Review不只是审核AI产出,Review反馈也是AI持续校准的输入;
  • CI/CD不只是自动化门禁,流水线的运行数据也是AI洞察的原料。

所以我说:

软件工程不是AI的对手,是AI的底盘。AI不是软件工程的掘墓人,是软件工程的升级包。

没有软件工程的约束,AI的能力是失控的;没有AI的加持,软件工程的效率是见顶的。两者必须缠绕在一起,互相”喂养”,才能持续生长。


04 从「加分项」到「必经之路」:三个信号说明深度融合已经不可逆

三个信号——深度融合已经不可逆

为什么我说深度融合不是”可选项”,而是”必经之路”?

因为有三个信号越来越明显:

信号一:AI能力的上限,被软件工程的下限锁死

你再怎么换模型、调Prompt、追最新版本,只要你的测试覆盖率不到30%、CI/CD跑一次要半天、Code Review流于形式——AI产出的质量就是在咱团队的质量。

OpenAI的模型再好,也救不了咱的烂工程。

很多团队遇到AI效果不佳,第一反应是”模型不够强”,然后疯狂换工具。但真相往往是:工具已经够强了,是工程底盘托不住工具。

信号二:单独的AI工具不懂上下文,需要工程体系来「喂」

现在的AI代码助手,本质上是个”通用写手”。它不知道你们的架构约定、不知道你们的编码规范、不知道历史上有哪些坑。它甚至不知道你们某个历史版本为什么要那样设计。

这些上下文只有软件工程体系能沉淀和传递——需求文档、设计文档、测试用例、故障复盘。工程体系越成熟,AI能看到的上下文越完整,它越能从一个”通用写手”变成一个”懂你们业务的专家”。

信号三:AI产出的「半成品」比例越高,「精加工」能力越值钱

当AI能把一个需求的代码从0写到80%,剩下的20%才是真正区分团队能力的地方——接口兼容性、性能边界、异常处理、安全风险、可维护性。

这些”最后一公里”的能力,恰恰是软件工程功底最密集的地方。

AI让写代码的门槛变低了,但让做工程的难度变高了。因为样板戏谁都能唱,真正值钱的是对边界的判断。

这三个信号连起来看,逻辑很清楚:

模型再好 → 没有上下文不行;有了上下文 → 精加工跟不上也不行;所以最后必须深度融合。

这不是什么高瞻远瞩的战略选择,这是被逼出来的。你不融合,就被复杂性反噬。


结尾语

回到开头那个问题:为什么AI落地这么难?

不是因为AI不够强,也不是因为组织不够”AI Ready”。而是因为——

我们把AI当成一台更快的发动机,却没检查底盘有没有生锈。

软件工程是AI转型的加速度

软件工程从来不是”约束”,它是承重结构。你可以在上面装AI引擎,也可以在旁边加Agent工具箱——但地基不牢,越用力越危险。

DNA双螺旋这个比喻,我想再往前推一步:这两条链不是平行的,它们是在进化的。

软件工程的实践在AI的催化下加速演化——测试策略、架构模式、Review标准、文档形态都在变。

反过来,AI的能力在软件工程的约束下也在定向进化——从”通用代码生成”走向”领域特化智能”。

这不是”AI + 软件工程”的加法,是”AI × 软件工程”的乘法——

但前提是,你得先有一堵能承重的墙。


本文是「大型研发组织AI转型 系列」的第七篇。系列前文: