AI 被寄予了很高的期待。
医疗、金融、教育、制造、科研,几乎每个行业都在谈 AI 如何改变未来。
但有一个问题经常被忽略:
AI 如果连软件本身都不能稳定地生产和维护,又怎么去重构那些更加复杂的行业?
现代社会的大部分系统,本来就是由软件连接起来的。
因此,AI 真正改变世界之前,可能要先完成一次对软件工程的重构。
1. 现在的 AI 还没有真正解决软件工程问题
AI 已经很会生成代码。
它可以:
- 写函数
- 补测试
- 改接口
- 查问题
- 重构代码
- 解释项目
但"会写代码"和"会做软件工程"不是一回事。
软件工程还包括:
- 任务边界
- 状态管理
- 模块关系
- 测试验收
- 权限控制
- 失败恢复
- 长期维护
这些问题不会因为代码生成变快而自动消失。
很多时候,AI 反而会让代码增长得更快,也让错误和技术债扩散得更快。
所以真正的问题不是:
AI 能不能写代码?
而是:
AI 能不能持续修改一个真实项目,而不把它越改越乱?
2. Agent 把问题从"生成"变成了"执行"
聊天模型主要解决一次输入和一次输出。
Agent 则不同。
它会根据当前结果继续决定下一步:
text
目标
↓
执行
↓
读取结果
↓
决定下一步
↓
继续执行
这意味着,程序的一部分执行路径不再完全由程序员提前写好。
于是新的问题出现了:
- 它下一步能做什么?
- 哪些文件不能改?
- 什么结果算通过?
- 什么时候应该停止?
- 失败以后从哪里继续?
这也是为什么 Agent 出现以后,Harness、State、测试、日志和权限开始变得重要。
AI 要继续向前,不只是需要更强的模型,还需要新的软件工程结构。
3. AI 正在迫使软件重新建立边界
传统软件的很多边界写在代码里。
函数有参数,类型有定义,接口有协议。
但 AI 使用自然语言以后,很多边界又重新变得模糊。
例如:
text
帮我优化登录模块。
这里并没有说明:
- 能不能改数据库
- 能不能增加依赖
- 能不能修改公共接口
- 哪些测试必须通过
所以 AI 编程越向上抽象,越需要在其他地方把精确性补回来。
这就是为什么会出现:
text
project_map.md
current_task.md
revision_log.md
open_issues.md
tests
schemas
permissions
hooks
它们本质上都在做同一件事:
重新规定 AI 可以在哪里行动,以及怎样判断行动是正确的。
4. 软件开发可能从"写代码"变成"组织生产"
未来的软件开发,可能不再以手写代码为中心。
大量普通程序可能由模板、组件和 AI 装配完成:
text
需求
↓
结构化模块
↓
AI 组合
↓
测试验证
↓
可运行程序
代码可能更加冗余,但人需要亲自写的代码更少。
真正重要的工作会逐渐变成:
- 设计模块
- 定义接口
- 设置边界
- 组织状态
- 建立验证
- 处理异常
对于性能要求很高的部分,再由专业团队配合 AI 做进一步优化。
也就是说,AI 不一定让软件本身越来越简单。
它更可能改变的是:
软件是怎样被生产出来的。
5. 软件工程是 AI 进入真实世界的基础层
AI 如果要进入医疗、金融、制造这些行业,会面对更严格的现实约束。
一个诊断错误、一笔错误交易、一次设备控制失误,都不能靠"重新生成一次"解决。
而软件工程已经具备一整套控制机制:
- 测试
- 版本控制
- 日志
- 沙箱
- 权限
- 回滚
- 静态分析
这些机制让 AI 可以先在一个有边界、可验证、可恢复的系统里工作。
所以,软件工程不仅是 AI 的应用领域,也可能是 AI 进入真实世界之前的第一块试验场。
AI 先重构软件工程,才有可能通过软件去重构世界。