01
软件工程到底在解决什么问题
要说清楚这个问题,先要从为什么需要工程化开始。
1.1 为什么需要工程化
时间线要回到1968那一年,北约在德国加米施召开了一次会议。会议的主题不是什么好事,他们想讨论一个问题:软件开发为什么总是延期、超预算、质量不可控?
当时的背景是:计算机硬件性能在飞速提升,但软件开发的效率和质量远远跟不上。一个大型项目,花了两三年时间,投入几百人,结果交付的系统要么Bug多到不能用,要么需求早已变了,要么干脆烂尾了。这就是著名的软件危机。
这个危机到今天结束了吗?没有。2024年Standish Group的CHAOS报告显示,只有31%的软件项目被认为是成功的(按时、按预算、按需求交付)。半个多世纪过去了,这个数字没有本质改善。
所以软件工程的诞生,不是因为学者们想造一个新学科,而是因为现实逼得大家不得不找办法。
1.2 怎么理解它想说什么
最常被引用的定义来自IEEE Standard 610.12-1990:
软件工程:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护,即将工程化方法应用于软件。
这个定义里,有三个关键词值得划重点:

所以软件工程的本质是:把软件开发从手工艺变成工程。手工艺靠个人技艺,工程靠流程和方法。
1.3 也是一个不可能三角
软件工程的三个核心目标是质量、成本、进度,构成一个经典的不可能三角:

三个互相制约:提高质量通常需增加成本或拉长进度;压缩进度通常牺牲质量或增加成本;削减成本通常影响质量或进度。所以这不是让你选一个放弃另外两个,而是提醒你:任何项目决策都是权衡,不存在既要、又要、还要。
做一个负责任的工程决策,不是选最优解,而是选在当前约束下最不坏的解。
02
AI时代挑战
回到IEEE那个定义,将工程化方法应用于软件。但是仔细看这个定义以及围绕它建立的一整套方法体系时,会发现它们有一个默认前提:代码是由人写的。
这个前提渗透到软件工程的方方面面:
过程模型假设:编码阶段是人写代码,所以需要清楚的需求文档、详细的设计文档,编码阶段要预留足够时间
质量保证假设:代码审查是人审人,所以关注代码风格、逻辑漏洞、设计缺陷,这些都是人容易犯的错误
测试设计假设:测试用例是人设计的,所以关注人可能漏测什么边界
进度估算假设:以人时为单位估算,一个人一天写完的这个接口,AI可能10秒就生成了
当这个前提不再成立时,整个工程化框架的结构就开始松动。
2.1 AI写代码后,面临的新问题
1. 边界变了
如果代码是AI生成的,那软件开发是从什么时候开始的?从你写Prompt开始?从你修改变更请求开始?从你调试AI输出开始?
换个角度:如果AI生成了80%的代码,那剩下的20%,需求理解、架构设计、质量验收、部署运维,才是人的工作。软件工程的重心正在从怎么写代码转移到怎么管理和集成代码生产。
2. 质量保证的手段变了
传统质量保证链路是:编码(人)→ 代码审查(人)→ 单元测试(人写)→ 集成测试(人写)→ 系统测试(人执行)。
现在的情况变成了:编码(AI)→ 代码审查(AI+人)→ 单元测试(AI写,AI跑,人审)→ 集成测试(AI生成 + 人确认)。
质量保证的重点从检查人的工作质量,变成了检查AI的工作质量。 而检查AI工作质量的方法现在也在探索、发展中。
3. 度量体系变了
人写代码时,评估生产力的指标是代码行数、功能点、人月。
AI写代码时,这些指标变得毫无意义,一天生成一万行代码不代表生产力高。需要新的度量方式:如AI生成代码的一次通过率、人工干预次数、AI输出的可维护性评分。
2.2 一个值得深思的问题:AI会让软件工程消失吗?
这个问题基本上大家都会在不同场合聊到。我的判断是:不会消失,但会重塑。
想想看,当年CASE工具盛行时,有人说以后不需要软件工程了,结果呢?工具只是工具,方法论还是方法论。AI也是一样,它降低的是执行成本,没有降低决策成本。
AI能在10秒内写一段代码,但:
这段代码到底要不要写?(需求决策)
这样写好还是那样写好?(设计决策)
这段代码的质量过不过关?(质量决策)
这段代码后续维护方不方便?(架构决策)
所有不写代码的决策,仍然是人的事。而这些决策的质量,恰恰是软件工程要解决的问题,以后判断决策力反而越重要也会越值钱。
03
一个初步的AI增强框架
3.1 AI已经在做的事
先看一些已经可行的场景:
1. AI代码审查
传统代码审查依赖资深Reviewer,费时又费眼。现在的做法是:
开发者提交PR → AI自动Review(语法/风格/安全/性能)→ 标记需要关注的区域→ 生成修改建议(附代码示例)→ 开发者审阅AI建议 + 修正→ 人工进行最终Review(仅关注架构和逻辑层面)
效果:审查时间缩短30%,低级Bug检测率提升50%。
2. AI文档生成
从人写文档变成AI从代码/变更推导文档:
代码变更提交 → AI Diff代码 → 自动生成变更说明→ 自动更新API文档(OpenAPI)→ 自动生成架构决策记录(ADR)草稿→ 人只需要审阅和微调
3. AI需求追踪
从人工维护需求跟踪矩阵变成AI自动解析+关联:
需求文档 → AI解析为结构化用户故事→ AI关联到相关代码模块→ 代码变更时AI识别受影响的需求→ 自动生成影响分析报告
3.2 一个初步框架
基于前面的分析和这段时间的深度事件,有这样一个流程框架:

核心思想是:AI不是替换软件工程,而是把那些人做起来费时但AI做起来便宜的事情自动化了。
三个层面增强了:
过程增强:减少人在重复性事务上的投入(写文档、写合规报告、做进度汇报),把更多精力留给创造性决策。
方法增强:降低技术方法的使用门槛(比如形式化方法以前只有博士才用得动,现在AI能做伪代码推导)。
质量增强:从人查人变成AI初筛→人终审,让质量检查覆盖更全面、执行更频繁。
那么,对于我们来说有什么用呢?如果你是一个技术团队的Leader或核心成员,可以从这个角度思考:

04
总结
回到开头的那个问题:2026年的今天,软件工程还有用吗?
相信能看到这,大家也都有答案了:工具在变,但工程化的思维不会变。
软件工程的本质,不是教你用什么语言、用什么框架、用什么工具。它的本质是教你用系统化的方式管理复杂度,而AI时代的软件,会比过去更复杂,不会更简单。
AI降低了编码的门槛,但没有降低做出正确工程决策的门槛。恰恰相反,当代码生产变得廉价时,决定生产什么、怎么生产、生产出来合不合格就变得更加值钱。
如果你也相信工程师真正的竞争力不在于会用多少工具,而在于对工程本质的理解,那欢迎你讨论,后续也会继续聊聊这些问题。
现在你的团队中或者自己日常工作中,AI帮你解决什么?留言聊聊你的看法
👆👆👆tips:敬爱的读者朋友,原创文章不易,如果您对企业架构、系统架构设计、软考高级系统架构师等技术领域感兴趣,可以点赞+关注,欢迎留言讨论,我们一起进步~
夜雨聆风