ARTICLE · 1278927
交给AI做软件,为什么越做越失控?
交给AI做软件,为什么越做越失控?传统软件工程五十多年,看似工具、方法论层出不穷,但本质仍是知识手工业:各类方法论都是在管理人的不确定性,没有把人脑里的业务理解、需求翻译、建模抽象等认知回路剥离出来交给机器。 瓦特离心调速机是真正工程化代表:依靠物理机制自动闭环,不再需要人的持续判断。大模型出现之后,“智力即服务”让软件工程真正工程化成为可能;但不能仅把AI当做代码补全工具,要思考如何基于认知引擎重新设计整套软件产线。 AI Coding的四个发展阶段 阶段1:代码补全阶段(Copilot模式) - 人仍是开发主体,AI只做局部代码/块级补全;模型的不确定性由人类审核消化,仅带来单点个人提效。 - 结构性矛盾:数字佃农:用户在使用工具过程中产生的修改、采纳、拒绝的反馈数据,被厂商收集用来迭代模型;但使用方团队不会沉淀自身工程资产、架构范式、隐性业务知识。用户付费还贡献数据,收益被工具厂商获取,自身团队只是空转,无法获得组织层面的能力增长。 阶段2:Vibe Coding(许愿式编程) 只给自然语言需求,让AI直接产出完整代码。 1. 局限性 ①暗知识:分为两类。一类是团队私域业务知识(风控、业务流程),模型训练数据没有;另一类是未文档化的架构决策(ADR),只存在人的大脑。软件是演化而来,缺失历史决策,AI很容易做出破坏架构的改动。需要依靠知识工程、结构化文档、ADR记录,RAG才可以发挥价值;文档缺失则AI能力大打折扣。AI是组织能力放大器,原有流程规范越好收益越高。 ②暗实现:AI除了实现目标功能,还会生成开发者没有校验的隐藏逻辑,带来安全、一致性隐患,造成架构腐化。 ③代码训练数据只有空间切片,缺少软件演化时间属性,容易出现过度设计。 ④AI可以完成绝大部分工作,但剩下少量难点修改,人需要读懂绝大部分AI生成代码,认知成本极高。 2. 工程师两种使用心态: - 打工心态(初级):只追求功能跑通,大量积累隐性技术债务。 - 工匠心态(资深):批判性审查AI输出,把控长期可维护性。 3. Vibe Coding合理适用场景(严肃生产系统不建议直接使用) - 产品做需求探索、快速产出Demo给研发; - 业务野战军快速做市场验证原型,业务成功后正规军重新实现,不成功直接丢弃代码; - 一次性内部工具、黑客松项目; - 即时软件:非技术人员生成临时小工具,代码不需要长期维护,未来可能会极大拓展软件的受众边界。 4. Vibe Coding带来新型技术债务 传统债务是坏代码;新型债务是掌控力丢失:代码能运行,但没有人完整理解系统。 AI是技术债务的加速器+遮羞布:代码格式工整掩盖内在问题;债务积累快、爆发晚,等到AI也无法处理时已经病入膏肓。 技术债务反复出现的4个系统性根源,不是人懒惰,而是制度问题: ①度量盲区:交付速度容易度量,可维护性、修改成本缺少仪表盘; ②激励周期错配:债务危害周期长于绩效考核周期,短期写烂代码更容易拿绩效; ③认知误差(双曲贴现):人本能高估短期收益、低估远期风险; ④组织记忆蒸发:决策只留在人脑中,人员流动知识丢失。 治理靠制度设计,而非道德说教,管理者需要给长期主义行为提供激励保障。 阶段3:Spec‑Driven Development SDD 规约驱动开发 不再直接让AI写代码,以规约(spec)为中心,多Agent分工+人工闭环校验: 1. 流程: requirement agent 生成结构化需求+验收标准(人工修正)→ design agent 产出设计契约文档design.md(人工查漏)→ plan agent 拆解带依赖的任务task.md(人工确认)→批量执行编码与测试交付软件。 2. SDD现实难点 1)在祖传存量系统落地最难,极度依赖知识工程,需要历史需求、设计文档沉淀;否则增量需求、设计会脱离原有系统上下文。 2)禁止直接修改代码:如果直接改代码,会造成代码与requirement/design/plan不一致,破坏后续迭代。解决方案:修改代码后自动反向更新上游文档,保证全链路一致性。 3)驾驭债(Harness债):只修复AI产出的bug远远不够。如果没有把错误沉淀成新约束、检查规则,流水线不会进化,同类错误反复出现,产线处于空转状态。组织差距核心就看是否主动偿还驾驭债。 阶段4:软件产线阶段(真正工程化) SDD流水线本身需要持续迭代进化,核心要做好三件事: 1. 记录AI每一轮错误、人与AI的修改差异,避免同类错误重复发生; 2. 将质量管控不断前置,把人工兜底变成自动化门禁约束; 3. 将资深工程师的技术品味、隐性判断蒸馏,转化为约束、Skill、检查规则。 - 新角色:软件工程工程师,职责是维护、迭代这套AI软件产线(二阶控制论);软件本身只是产线的产出物。 - 类比编译器:高级描述交给产线,由大模型(认知引擎)完成向代码的转换,实现软件工程真正的工程化。 AI时代复杂度治理:救命‑治病‑养生三段论 - 救命:线上故障应急;治病:重构、还债;养生:预防、规范、基础设施。传统健康组织精力分配:80%养生、15%治病、5%救命。 - AI带来变化: 1. 治理对象发生变化:过去治理人(人知道但做不到);现在要治理模型(模型做得到,但不知道为什么要这么做)。养生对象扩展:驾驭系统、约束规则、裁判、知识工程。 2. 剪刀差现象:AI让救命、治病变便宜,但养生变得更昂贵。企业容易砍掉养生预算,而复杂性失控往往就发生在放弃养生的那一刻。 关键总结: 1. AI是组织能力的放大器,也是透视镜,原有流程差的团队使用AI只会放大问题。 2. 知识工程成为企业落地AI的硬基石:需求、设计、架构决策记录ADR、文档向大模型友好改造,隐性知识挖掘至关重要。 3. 分清Vibe Coding的边界,它适合探索、原型、即时软件,不适合直接用于严肃长期生产系统。 4. 研发范式从以代码为中心转向以Spec规约为中心,spec是稳定不变的业务逻辑载体,代码只是实现。 5. 个人提效 ≠ 组织提效:写代码只是研发工作的一小部分;如果只加速编码,需求对齐、协同等瓶颈没有解决,不会带来整体收益。 6. 新债务类型:除传统技术债之外,新增驾驭债(Harness债),要持续迭代约束AI的整套产线。 7. 新岗位出现:软件工程工程师,专门维护AI软件产线。















































































