一、软件工程方法论的演进:一段即将终结的历史
1970年,Winston Royce在他那篇著名的论文中描述了瀑布模型。尽管他本人其实是在批评它。需求分析、系统设计、实现、测试、部署、维护,这六个阶段像瀑布一样依次倾泻而下,不可回溯。这是一种工业时代的思维方式:将软件开发视为一条装配线,每个环节各司其职,文档先行,一切按计划推进。
瀑布模型的问题很快暴露出来。软件不是汽车,需求会变,用户会变,市场会变。于是我们看到了迭代模型、螺旋模型,以及各种试图在刚性流程中引入弹性的尝试。
2001年,十七位程序员在犹他州的滑雪场签署了《敏捷软件开发宣言》。这是一次范式转移:个体和互动高于流程和工具,可工作的软件高于详尽的文档,客户合作高于合同谈判,响应变化高于遵循计划。Scrum、XP、看板,各种敏捷实践开始流行。两周一个迭代,每日站会,持续集成,测试驱动开发。
敏捷的本质是什么?是承认人类认识的局限性。我们无法在项目开始时就预见所有需求,所以我们拥抱变化。我们无法保证代码一次写对,所以我们频繁测试、快速反馈。整个方法论的演进,从瀑布到敏捷,本质上是一部人类与自身局限性斗争的历史。
但现在,这段历史即将画上句号。不是因为我们找到了更好的方法论,而是因为执行这些方法论的主体正在被替换。
二、AI全栈:开发、测试、部署的全面接管
让我们看看今天的AI能做什么。
在开发环节,Claude、GPT-4、以及各种代码专用模型已经能够根据自然语言描述生成完整的应用程序。不是代码片段,不是补全函数,而是从数据库设计到前端界面的完整实现。Claude Artifacts可以在对话中直接生成可运行的React组件。Cursor、GitHub Copilot Workspace这类工具正在将"编程"转变为"审阅":人类的角色从写代码变成了看代码、改代码、验收代码,甚至连代码都不看。正如最近爆火的OpenClaw的开发者Peter Stringberger说的,一天提交600次代码,甚至看都不看。
在测试环节,AI不仅能生成单元测试、集成测试,还能分析代码覆盖率,识别边界条件,甚至预测潜在的bug热点。更重要的是,AI可以理解测试的意图:它知道你想测什么,而不只是机械地执行测试用例。
在部署环节,在我创业的云计算时代,Infrastructure as Code早已普及,而AI让这一切变得更加自动化。从容器编排到CI/CD流水线配置,从云资源调度到监控告警设置,AI可以根据应用特性自动生成最优的部署方案。
当一个AI系统可以理解需求、设计架构、编写代码、生成测试、配置部署、监控运行、修复故障……完整的软件开发生命周期都在它的能力范围内,"软件工程师"这个职业的存在基础就开始动摇了。
有人会说,AI写的代码质量不够好,需要人类把关。这话在今天或许还成立。但请记住,这是一个快速移动的目标。一年前AI还在写出满是bug的代码,今天它已经能写出大部分的算法题。我研究生时代要花几个月写出的3维重构的Delaunay算法,Claude Code Opus 4.5可以在10分钟内完成,我们有什么理由相信这种进步会停止?
三、计算机教育和软件行业的坍塌
现在让我们来分析这场AI变革对计算机教育和软件行业的深远影响。
计算机教育意义的消解
首先,我们需要理解人们为什么学习计算机和编程。大致可以归为三类动机:
第一类是职业动机。学编程是为了找工作、赚钱、养家糊口。这是绝大多数人选择计算机专业的直接原因。过去三十年,码农是通往中产阶级最可靠的路径之一。
第二类是认知动机。学编程是为了锻炼逻辑思维、理解计算机如何工作、掌握一种与机器对话的能力。许多大学将编程视为一种"新时代的读写能力",甚至是通识教育的一部分,是一种基础技能。
第三类是哲学动机。学编程是为了理解指令与执行、抽象与具体、确定与涌现之间的关系,为了体验从无到有的创造快感。
现在让我们逐一检视这些动机在AI时代的命运。
职业动机最先崩塌。如果AI可以完成软件工程师的大部分工作,那么市场对软件工程师的需求就会大幅下降;如果需求下降,薪资就会下降;如果薪资下降到一定程度,"学计算机找好工作"就不再成立。那时,计算机科学专业会像今天的图书馆学一样,从热门变成冷门。那些正在涌入计算机专业的学生,可能在毕业时发现自己学了一门屠龙之术。
认知动机的崩塌稍慢一些,但也难以幸免。学习编程锻炼逻辑思维?如果你永远不需要将这种逻辑思维付诸实践,这种锻炼还有意义吗?就像我们今天不会因为锻炼计算能力而去学珠算一样。更关键的是,当AI可以将自然语言直接转化为工作软件,"理解计算机如何工作"就从必要技能变成了可选知识。就像今天的汽车司机不需要理解内燃机原理,普通用户也不需要理解操作系统的进程调度。计算机原理会变成一种专业化的考古知识,只有极少数人需要掌握。
哲学动机或许能残存最久。但即便如此,它也会经历一次根本性的转变。编程的哲学意义在于人与机器的直接对话,在于将人类意图精确编码的过程。当AI成为中介,当我们用自然语言描述意图、AI用代码实现意图,这种直接对话就消失了。剩下的哲学价值,更多是历史性的、考古性的。就像今天研究梵语古希腊语的学者,他们获得的是一种对过去的理解,而非对现在的掌控。
这意味着,计算机教育需要一次根本性的重构。教什么?为什么教?教给谁?这些问题都需要重新回答。我认为未来的计算机教育会分化成两条路径:一条是面向极少数人的底层系统研究,维护AI运行所需的基础设施;另一条是面向大众的AI协作课程,教人们如何用自然语言精确表达意图。后者与其说是计算机教育,不如说是一种新形态的语言教育和思维训练。
软件行业的商业模式瓦解
软件行业的商业模式建立在一个基本事实之上:写代码需要人,需要时间,需要专业技能。由此衍生出两种主要的商业形态。
第一种是人天模式。即项目外包或咨询。客户有需求,软件公司派工程师去实现,按人天或人月收费。一个高级工程师可能每天收费几千元,一个项目可能需要几十个人做几个月。这是一个将人力时间直接货币化的形式。
第二种是产品/SaaS模式。软件公司开发产品,卖给多个客户,通过规模效应降低单位成本。SaaS更进一步,按订阅收费,将一次性收入变成持续性收入。
人天模式的逻辑链条是这样的:客户为什么要付钱买人天?因为客户自己没有工程师,或者自己的工程师不够用。为什么客户自己没有足够的工程师?因为培养工程师成本高、招聘工程师难度大、维护工程师团队开销大。但如果AI可以替代工程师呢?那么客户就可以用AI直接完成开发工作,不再需要购买人天服务。
你可能会说,客户不懂技术,即使有AI也用不好。这在短期内是对的。但这只会催生一个新的、更小的市场:"AI软件开发代理",由少数懂得如何与AI协作的人,帮助不懂技术的客户实现需求。这个市场的规模会比传统软件外包市场小很多,因为一个人配合AI的产出,可能相当于传统模式下十个人甚至更多,可能是今天创业的一个方向。
SaaS模式的逻辑链条更复杂一些。SaaS的核心价值在于:我作为软件公司,承担了开发和维护软件的成本,你作为客户只需要付订阅费就能使用。这比客户自己开发划算,因为我可以把成本分摊给多个客户。
但AI正在改变这个成本结构。如果开发软件的边际成本趋近于零,那么分摊开发成本就不再是一个有吸引力的价值主张。客户可能会想:既然AI可以为我定制一个完全符合我需求的软件,我为什么要用一个通用的SaaS产品,还要迁就它的设计?
更深层的问题是,SaaS的护城河正在被AI填平。传统上,SaaS产品的护城河包括:技术积累(我们花了多年时间打磨产品)、数据积累(用户数据让产品越用越好)、切换成本(用户已经习惯了我们的产品)。但当AI可以快速复制任何软件功能,技术积累就贬值了;当AI可以理解各种数据格式并无缝迁移,切换成本就降低了;当定制化软件的成本降到足够低,通用化产品的优势就消失了。表现在资本市场上,就是软件企业股票的暴跌。
截至今天,标普北美软件指数连续下跌三周,1月暴跌了15%,创下自2008年10月以来最大单月跌幅。
这并不意味着所有软件公司都会消失。那些掌握独特数据、占据关键生态位、或者提供不可替代服务的公司仍然会存在。但行业整体的规模会大幅萎缩,从业者数量会急剧减少,做软件不再是一个能支撑庞大产业的生意。
四、语言的复归:哲学与文学的避难所
当代码作为人机之间的中介语言失去其必要性,一个有趣的现象出现了:自然语言重新成为人与机器交流的主要方式。
讽刺的是,就在这个转折点到来之际,某些知名大学正在大刀阔斧地砍掉文科专业,仿佛人文学科是工业时代的残余、是需要被优化掉的冗余。这会不会被证明是愚蠢的人类下的又一步臭棋?当AI让代码技能贬值,当自然语言成为人机协作的核心界面,那些被裁撤的哲学系、文学系、语言学系,恰恰可能是未来最需要的学科。历史总是喜欢这样的玩笑:我们拼命追赶的,往往是即将过时的;我们急于抛弃的,往往是即将升值的。
在软件工程的时代,精确性是最高美德。代码必须没有歧义,每一个符号都有确定的含义,编译器会毫不留情地指出任何模糊之处。程序员被训练成用形式化语言思考的人。
但自然语言完全不同。自然语言天然就是模糊的、多义的、依赖语境的。"把这个按钮做得好看一点":什么是好看?"让用户体验更流畅":什么是流畅?这些在代码世界里无法被精确定义的概念,在自然语言世界里却是日常用语。
当AI成为代码与人之间的翻译器,人类需要掌握的核心能力就从"精确编码"变成了"准确描述"。而"准确描述"需要的,恰恰是对语言的深刻理解、对意图的清晰把握、对世界的丰富认知。
这是哲学和文学的领地。
哲学追问概念的边界:什么是"好"?什么是"公正"?什么是"美"?当我们需要向AI描述我们想要什么样的软件时,我们实际上是在进行一项哲学工作:澄清我们自己的意图,定义我们自己的价值。
文学则提供了描述世界的技艺。一个好的小说家能用几个词勾勒出一个人物的性格,一个好的诗人能用隐喻传达无法言说的情感。当我们用自然语言与AI协作时,这种语言的技艺变得至关重要。能够精确而优雅地描述自己想要什么的人,将在AI时代拥有巨大优势。
也许这是历史的某种讽刺。在过去几十年里,"学STEM还是学人文"几乎是一个不需要争论的问题。代码就是金钱,算法就是权力。但当AI接管了代码和算法,剩下的人类领地反而是那些我们曾经认为"没用"的东西:理解人性的能力,表达意图的能力,追问意义的能力。最近某些大学取消大量的文科专业,会不会被证明是愚蠢的人类的又一步臭棋呢?
软件工程死了。但语言还活着,意义还活着,人还活着。
在这个意义上,哲学和文学不是残存的意义避难所,而是人类真正独有的领地,是AI时代我们安身立命的根基。代码只是我们曾经发明的一种工具,而语言、意义、理解,这些才是人之为人的本质。
我们即将告别一个时代。在那个时代,程序员是数字世界的建筑师,代码是通往未来的钥匙。而在新的时代,每个人都可以是建筑师,只要他能清楚地说出自己想要建造什么。
这不是终结,而是回归。回归到语言,回归到意义,回归到人本身。
💬 留言