软件工业的三次转身

软件工业这六十多年,卖的东西其实一直没变;变的只是由谁担保、拿什么担保。

担保落到实处,是些很琐碎的约定。一套系统出故障的那天夜里,值班电话打给谁、多久要有人回应,多半在交付之前就吵过一轮、写进纸面了;哪些损失算在合同里、哪些不算,也是一样。程序当然可能出错,客户心里也清楚;敢把业务放上去,靠的是出事之后不至于没人接、没人认。

制造时代:卖的是承诺

软件工业最早卖的不是程序,而是一份承诺。一九六〇年代,一台计算机要占满整间机房,采购它往往需要层层审批,配套的软件则可能与硬件、服务捆在一起,也可能交给一支队伍专门写上数年。后来软硬件逐渐解绑,独立软件商开始出现,客户付出的高价里,买到的也不只是若干张存储介质,而是对可靠性、维护和长期支持的期待。

既然承诺的是秩序,生产它就只能借用造桥和造汽车的办法:需求调研、架构设计、层层评审、分段验收。后来被概括为“瀑布”的那套流程,带着明显的制造业痕迹。罗伊斯那篇常被引用的论文,本意并不是替简单的顺序开发背书,反而讨论了它的风险;行业记住的,却常常只是那张逐级向下的分工图。

这不完全是误解。计算资源昂贵,部署周期漫长,返工代价极高,把问题尽量挡在上一道工序,本来就符合那个时代的经济规律。布鲁克斯后来在《人月神话》里写下“向进度落后的项目增加人手,只会让它更落后”,揭示的也是软件生产无法简单照搬流水线的一面:人可以增加,沟通与理解的成本却不会按比例摊薄。

流程因此成了一种担保。它未必能消灭错误,至少试图让错误可见,让责任有迹可循。

快消时代:分发接管一切

第二次转身由互联网发动,大致从二〇〇〇年前后开始,到二〇一〇年代真正定型。软件的边际复制成本趋近于零,浏览器、应用商店和云服务又重写了交付方式。软件从按套售卖,慢慢变成按月订阅和免费加广告。Adobe 不再以盒装软件为中心,改按月收费;应用商店则凭借入口、支付和用户关系,从交易中分走一部分收入。

定价权并没有简单地从供应商手里落到用户手里,而是重新分配给了离用户最近的人。平台掌握入口,渠道决定曝光,免费模式里的付费者又换成了广告主,用户交出的则是注意力。复制一份软件可以很便宜,让一亿个人看见它、使用它、持续为它付费,仍然是另一门昂贵的生意。

方法论也随之改变。在互联网业务中,敏捷逐渐成为主流,持续集成和自动化部署进一步缩短了交付周期。上线不再总是一次郑重的验收,而可以成为反复进行的日常动作:先接触真实用户,再根据反馈修正。快速试错并没有取消工程纪律,只是把关卡从发布前的一部分评审,挪到了持续发生的测试、监控和回滚之中。

面向消费者的那一半行业,竞争力越来越多地取决于增长、渠道和对注意力的运营;数据库、基础设施和开发工具等另一半,依旧要靠深厚的工程能力说话。工程能力没有失效,只是不再是唯一决定胜负的变量。在消费级市场,软件和消费电子的距离被拉近了:上新速度、分发效率和用户规模,都能压过单纯的技术精巧。

这场持续多年的生产与分享,还留下了一笔起初并非为 AI 准备的遗产。开源仓库、问答社区、技术博客和事故复盘,在一次次提交、争论与修订中沉淀下来,构成了规模空前的技术语料。它们原本服务于协作和知识共享,各自带着不同的许可与使用边界,后来却共同成了第三次转身的燃料。

生成时代:实现开始贬值

第三次转身就发生在这笔遗产之上。二〇二二年之后,生成式 AI 让“描述需求,得到一个可运行原型”成为日常。从明确需求到初步实现,成本开始大幅下降。它还没有把软件生产的成本降到可以忽略,却足以改变许多工作的相对价格。

过去软件贵,很大一部分贵在把意图变成实现所耗的工时。如今,单纯完成这层转换的工时正在贬值。需求越明确,模式越常见,结果越容易验证,贬值就越明显;需求越模糊,系统越复杂,失败代价越高,省下来的时间就越可能被重新花在澄清、集成和检查上。

因此,行业里关于程序员会不会被淘汰的争论,常常把问题问得太笼统。编译器没有淘汰程序员,开源也没有,AI 更可能再次改写分工。真正受到挤压的,是把已经想清楚、写明白的需求机械转成代码的那部分工作。系统为什么这样设计,边界条件是否完整,生成的结果能否进入真实业务,这些问题不会因为代码出现得更快而自动消失。

在开发环节,稀缺性于是更多地向两头移动:一头是想清楚要做什么,另一头是判断做出来的东西是否可信。至于产品能否被看见、被采用,分发仍然重要;AI 没有废除上一时代的规则,只是在它上面又加了一层新的供需关系。

谁来提供秩序

把三次转身排在一起,并不是工程能力、分发能力和判断力依次退出舞台,而是它们的相对溢价不断变化。制造时代,秩序主要由流程担保;快消时代,平台、品牌和持续迭代共同维持秩序;到了生成时代,代码可以绕过部分传统工序迅速出现,流程和速度却都不再足以证明它可信。

当生成能力变得普遍,稀缺的就不再只是把代码写出来,而是有人能够解释:为什么是这个方案,为什么可以这样上线,出了最坏的情况怎么办。真正稀缺的,也不只是敢在验收单上签字的人,而是有能力让那个签名值得信任的人和组织。

签字不是勇气表演。它背后需要判断力,也需要组织授权、审计机制和承担后果的能力。AI 本身不能成为责任主体,它写错的代码,最终仍要由采用它的个人或组织面对;责任如何在开发者、供应商、部署方和采购方之间分配,则仍要交给合同、规则与具体场景。客户愿意为担保付钱,付的正是这一整套安排,而不只是一个名字。

软件业从来没有完整承担过所有风险。早在制造时代,合同里就写满了责任限制和免责条款。所谓担保,从来不是“任何损失都由我赔偿”,而是把能力、义务和边界说清楚,并让其中可信的部分具有价格。

于是,审计、合规、留痕和事后复核,这些不能仅靠生成解决的事情,开始占据更重要的位置。模型当然可以协助写测试、整理证据、生成报告,但生成一份看似完整的说明,与证明系统真的可靠,仍然是两回事。机器接管了部分加工,检验不但没有消失,反而必须向更深处移动。

再往前推,许多软件或许会便宜到不再被单独谈论,逐渐藏进产品和服务内部,像电藏进一盏灯里:开灯的人不必谈论电,但总得有人为线路和开关负责。到那时候,“软件工业”这个词的边界大概会越来越模糊,被反复重估的却始终是同一件事——由谁担保,拿什么担保,以及那份担保值多少钱。

评论