AI 能写代码,但它造不出软件
最近,我收到越来越多的消息:陌生人发来一坨 AI 生成的代码,配上一句"能帮我把它变成产品吗?"。
发信人往往是律师、销售、医生,甚至是咖啡店老板。他们没有写过一行生产代码,却用最新的 AI 工具在周末拼出了一个能跑的 demo。界面亮眼、交互顺畅、功能看似齐全------至少在本地机器上点两下是这样的。 然后,他们卡住了。卡在"上线"两个字上。 于是他们开始满世界找技术合伙人、CTO、外包团队,愿意用股权、现金、分成换取一个承诺:把这个玩具变成生意。
这让我反复问自己一个问题------ 如果 AI 真的能取代软件工程师,为什么这些人还需要我们?
代码 ≠ 软件
写代码从来不是软件工程里最难的部分。 把一个明确定义的小任务拆成函数、补全语法、跑通单元测试------今天的 AI 已经炉火纯青。你给它一个 user story,它能吐出结构清晰、类型标注、测试覆盖的代码,速度比大多数 junior 快十倍。
但软件不是代码的堆叠。 软件是一座城市:
- 有下水道(错误处理、日志、监控)
- 有供电系统(部署、扩容、降级)
- 有消防通道(安全、合规、审计)
- 有城市规划(架构、分层、演进路径)
AI 能给你盖一栋漂亮的别墅模型,3D 渲染、灯光效果、VR 漫游一应俱全。
可它不会告诉你:
- 这栋楼的地基能不能扛台风?
- 消防通道够不够宽?
- 十年后要加装电梯,墙体要不要留洞?
那些找上门的人,拿来的正是这种"模型房"。
运行在 localhost:3000,依赖本地 SQLite,硬编码 API key,错误直接 console.log。 它能演示,却经不起风吹雨打。
复杂度的管理是人的专属 软件工程的核心不是"写",而是"管"。
管理的是复杂度。
一个生产系统往往由几百个"简单"模块组成。单独看,每个模块都平平无奇:
- 用户登录
- 订单支付
- 库存扣减
- 消息推送 但要把它们同时跑起来,还要满足:
- 99.99% 可用性
- 峰值 10 万 QPS
- 数据最终一致
- 支持多地区部署
- 能平滑升级不掉单
- 出错能秒级回滚
- 成本控制在预算内 这就是几百个"简单"同时成立的约束条件。
AI 能解决其中一个,却无法同时满足全部------因为它没有"整体观"。
它不知道:
- 这个缓存失效策略在双十一会雪崩
- 这个数据库索引在数据倾斜时会锁表
- 这个第三方 SDK 在 iOS 18 上会闪退 这些知识不在训练数据里,而在无数次深夜排障的肌肉记忆里。
AI 是超级实习生,不是建筑师 把 AI 想象成一个顶尖的实习生:
- 学得快、码得快、文档写得漂亮
- 但没有 product sense
- 没有 cost awareness
- 没有 risk radar
你让它实现"用户上传头像",它会给你一个完美封装的函数。 但它不会问:
图片要不要压缩?存储用 S3 还是 CDN? 热点怎么做? 违规内容怎么审核? GDPR 合规怎么落地?
这些问题不是"代码问题",而是"系统问题"。
它们分布在产品、运维、安全、财务、法务的交界处。 AI 没有跨部门的上下文,也没有权衡利弊的动机。
门槛没有降低,只是前移了 AI 把"写代码"的门槛拉低到几乎为零, 但把"定义问题"的门槛拉高了十倍。
过去,想法 → 代码 的链路被技术能力卡住。
现在,想法 → demo 只需一个 weekend。 但 demo → 产品 的链路,依然被复杂度管理卡住。
那些非技术创始人用 AI 跳过了第一道关卡, 却撞上了第二道更高、更硬的墙。 他们需要的不是"会写代码的人", 而是"能把复杂度翻译成可持续系统的人"。
未来的分水岭 AI 不会取代软件工程师, 但会重新定义软件工程师。
未来的顶尖工程师不是写最多代码的人, 而是:
- 最懂业务,能把模糊需求翻译成可验证的约束
- 最懂系统,能在数百个维度上做最优权衡
- 最懂演进,能设计出"十年不重写"的架构 AI 会成为他们的超级杠杆:
- 自动生成 boilerplate -
- 智能重构 legacy 码 -
- 实时建议最佳实践 但杠杆再长, 方向盘还是握在人手里。
工具在进化,护城河在升级 AI 能写代码,却造不出软件。
AI 能写代码,
但软件是人驯服复杂度的艺术。
这条鸿沟,短期无解。
这条护城河,正在加固。
所以,下次有人拿着 AI demo 找你说"就差上线了", 你可以微笑点头: "对,就差一座城市。"