AI 时代,代码会过期,知识不会(项飙版)

AI 时代,代码会过期,知识不会

这是一份对谈记录。说话的两个人,一个是程序员李文业,另一个是他这一年里几乎每天都在打交道的 AI。谈话发生在他离职的当天。他已经休息了两周,情绪早就从工作里慢慢松脱出来,所以这更像是一次没有明确目的的复盘,而不是一份正式的总结。我们几乎原样保留了对话里的犹豫、跳跃,以及那些没有说完就转向的念头,因为这场谈话真正有意思的地方,恰恰不在最后的结论,而在两个人如何一点点把一个模糊的直觉,谈成一句连他自己都没料到会说出口的话。下面的分节和小标题是事后补上的,其余尽量照原样呈现。

一、离职这天,先聊聊那种轻松

李文业:今天是我正式离职的日子。说来也怪,我以为自己会有点失落,结果没有,更多的是一种轻松。其实我已经在家休息了两周,人早就慢慢从工作状态里解绑出来了。真到了签字这一天,反而很平静。

AI:那种轻松,是因为不喜欢这份工作吗?

李文业:不是。我不讨厌工作本身,甚至有些事情我做得挺开心的。轻松是因为,我终于结束了一段其实并不适合自己的旅程。你知道那种感觉吗,像是穿了一整年不合脚的鞋,脱下来的那一刻,才发现原来一直有点疼。

AI:那如果让你把这一年浓缩成一个最大的收获,你会说什么?我猜大多数人会说完成了几个项目,或者学会了某个框架。

李文业:都不是。真要我挑一个,那一定是,我给自己搭起了一套属于自己的 AI 工程工作流。刚入职那会儿,我只是把 Cursor 当成一个写代码更快的工具,让它补全、让它改 bug,仅此而已。后来我慢慢开始建自己的文档中心,每一个需求都有独立的目录,里面有需求模板、设计模板、测试模板、Review 模板,把整个开发流程一环一环串起来。做着做着我才反应过来,我真正积累下来的不是那些 Prompt,而是一套方法论。

AI:所以这套方法论,最后把你带到了哪个方向?

李文业:它让我第一次对未来有了清晰的判断。我知道自己想往哪走了,Harness Engineering、Agent Coding、人机协作的软件工程。这三个词以前对我是模糊的,现在它们变成了我愿意押上未来几年的东西。这一年别的都可以忘,这个不能忘。

编者注:值得留意的是,他把最大的收获定义成一套“方法论”,而不是任何一个可以写进简历的成果。这也许正是这场对话后面所有推论的起点:当一个人开始把自己积累的东西理解为方法而不是产物时,他看待代码、看待工作、看待自己职业身份的方式,其实已经悄悄换了一套坐标系。

二、最大的遗憾,和三条不肯再让步的底线

李文业:当然,这一年也有遗憾。而且我发现,我最大的遗憾居然不是技术上的,不是哪个项目没做好,是我和 Leader 的工作方式始终没能对上。

AI:怎么个对不上法?

李文业:他的管理风格特别强调结果和效率,什么都看产出、看速度,人文关怀这一块比较少。而我恰好是那种比较敏感、也比较需要信任和尊重的人。我需要有人告诉我方向、给我空间,而不是只盯着交付。这两种气质放在一起,时间一长就会互相消耗。

AI:那你会觉得是他的问题,还是你的问题?

李文业:一开始我肯定往对错上想,觉得要么是他不够体谅人,要么是我太玻璃心。但后来我慢慢想明白了,这根本不是谁对谁错的问题,是匹配的问题。他那套风格放在另一个人身上,说不定特别高效、特别合拍。只是不适合我。想通这一点之后,我心里反而释然了很多,也不怨谁了。

AI:那这份遗憾,有没有变成一点具体的东西留下来?

李文业:有,我给下一份工作定了三条不能妥协的底线。第一,必须有足够自由的 AI 工具使用环境,这是我发挥的前提。第二,团队和 Leader 的管理风格要尊重人,得有基本的人文关怀。第三,工作节奏不能长期透支身心健康。我特别想强调,这不是我要求变高了、变娇气了,恰恰相反,是这一年的经历让我第一次真正知道,对我来说什么才是重要的东西。有些代价,付过一次就够了。

编者注:他很谨慎地把“遗憾”从道德判断里摘了出来,改用“匹配”这个词。这是一种成熟,也是一种自我保护。但这里其实埋着一个没有完全展开的张力:当一个人越来越清楚自己需要什么,他能够将就的空间也就越来越小。这究竟是更自由了,还是更挑剔了,这场对话没有给答案,或许也不该急着给。

三、AI 都能写代码了,为什么还要工作流

李文业:离职这件事聊完,我们后来拐到了一个更有意思的话题上。我一直在想一个问题:为什么 AI 工程还需要那么一整套工作流?直接让 AI 写代码,不就完事了吗?既然它写得又快又好,那些流程是不是纯属多余。

AI:那你自己后来是怎么回答这个问题的?

李文业:我发现我一开始就把问题问偏了。真正的软件开发,从来就不只是写代码这一件事。需求评审、技术设计、测试设计、上线验证、事故复盘,这些东西在还没有 AI 的年代,本来就存在,本来就是人和人之间协作出来的一套工作流。写代码只是这条链子上的一环,甚至不是最难的一环。

AI:也就是说,工作流不是为 AI 发明的。

李文业:对,这就是我想通的地方。工作流一直都在,只不过以前那些文档主要是写给人看的,需求文档给产品和开发看,设计文档给同事和后来接手的人看。现在有意思的地方在于,它们第一次开始同时写给 AI 看了。AI 的加入并没有创造出工作流,它只是让这套原本就存在的工作流,第一次拥有了一个能够真正消费这些上下文的新成员。

AI:一个“新成员”,这个说法挺准的。那这个新成员和过去的成员,最大的不同是什么?

李文业:过去我们写一份设计文档,心里默认读者是人,人会脑补、会问、会凭经验补上没写清楚的部分。AI 不会,你给它多少上下文,它就理解到哪。所以它反而逼着我们把过去藏在脑子里、靠默契传递的东西,老老实实写下来。从这个角度说,AI 没有让工作流变轻,它让工作流变得更诚实了。

四、真正难维护的,从来不是代码

李文业:顺着“上下文”这个词,我们又挖到了一个更本质的问题。过去一个项目最重要的资产,很多时候压根不是代码,而是那些只存在于老员工脑子里的经验。

AI:能不能说得再具体一点?

李文业:你想想那个特别常见的场景。为什么一个核心员工一离职,整个项目突然就没人敢动了?代码明明还在那儿,一行没少。为什么很多老项目的技术债越滚越重,最后谁碰谁倒霉?根子不在代码太复杂,在于上下文丢了。当初为什么这么设计,踩过哪些坑,哪些方案其实被否决过,哪些地方碰都不能碰,这些东西从来没写进代码,它们只活在某个人的记忆里。那个人一走,记忆就跟着走了。

AI:所以你会说,真正难维护的不是代码,是知识。

李文业:对,这句话我现在特别确信。代码是知识的产物,不是知识本身。而 AI 的出现,其实把这个老问题放得更大了。很多人以为有了 AI,交接、维护这些事就不愁了,反过来才对。如果上下文没有被沉淀下来,AI 和那个新来的、什么背景都不知道的同事一样,它照样看不懂这个系统,照样不敢乱改。

AI:那按这个逻辑推下去,未来我们真正要花力气去维护的对象,会不会根本不是代码?

李文业:我越来越倾向于这个判断。以后需要被小心维护、被反复更新的,也许不再是代码这堆字符,而是知识本身,是那套解释“为什么”的上下文。代码只是它投下的影子。

编者注:把“技术债”重新解释成“上下文的丢失”,是这段对话里一次很关键的转向。它意味着技术债不是一个纯技术问题,而是一个知识管理问题。这也解释了为什么很多团队疯狂重构却越还越多:他们一直在修影子,没去修投下影子的那个东西。

五、代码是一次性的,还是越来越值钱

李文业:接着我们撞上了一个看起来自相矛盾的问题。你肯定也听过两种截然相反的说法。一种是,未来代码都是一次性的,AI 一分钟就能重新生成,写完即弃,根本不值得维护。另一种是,未来软件会越来越好维护,越来越像资产。这两种说法听上去完全对着干,你觉得谁对?

AI:如果让我猜,我会说它们可能都对,只是在说不同的东西。

李文业:我们最后也是这么想通的,两句话其实都成立,关键看你说的是什么系统,看它的生命周期和价值。对于那种生命周期特别短的小工具、小脚本、小应用,代码真的可能就是一次性的。因为生成的成本已经低到,重新写一遍比去读懂旧的、再改一遍还便宜。那种情况下,谈维护反而是浪费。

AI:那另一头呢,什么样的系统不适用这个逻辑?

李文业:银行、交易所、支付系统、微信这一类。这种长期系统里,真正值钱的东西从来不是代码。是那些业务规则,是一次次事故换来的经验,是安全策略,是整个组织沉淀下来的知识和上下文。你把微信的代码全删了让 AI 重写,它可能真能给你生成一套能跑的东西,但它写不出那些年踩过的坑、修过的漏洞、和无数真实用户磨出来的规则。代码可以重新生成,知识不能。

AI:所以这两种说法的分界线,其实就是那句“代码可以重新生成,知识不能”。

李文业:对。想清楚这条线之后,很多争论就不用吵了。未来真正被我们当成资产去维护的对象,不再是代码本身,而是一整套知识系统。代码只是这套知识在某一刻的一次编译输出,过期了,重新编译就好;知识过期了,是要出事的。

六、从写得快,到问得准

李文业:聊到这儿,我们又冒出一个新发现,而且我觉得这个是最关键的。AI 极大地降低了表达知识的成本。你想,写代码是一种表达知识,写文档也是一种表达知识,把脑子里想清楚的东西变成别人能用的形式,这个过程 AI 帮我们提速了好几个数量级。但是,它并没有同样地提升我们获取知识的速度。

AI:这两件事的区别,能不能再掰开一点?表达知识和获取知识,差在哪。

李文业:差在方向上。表达知识,是把已经想明白的东西输出出来,这件事 AI 现在做得比我们快得多。而获取知识是另一回事,去观察真实的世界,去理解用户到底要什么,去提出一个新的假设,再去验证一条新的规律。这些事 AI 能帮忙,能给你查资料、跑分析,但它没法直接替你完成。因为它得先有人把世界看清楚,才有东西可表达。

AI:那如果表达变得几乎不要钱,稀缺的能力是不是就整个换了位置?

李文业:正是。过去的软件工程,本质上更像是在生产代码,比的是谁写得又快又稳。未来的软件工程,更像是在生产知识,比的是别的东西了。代码写得快不快,越来越不重要;重要的是,你能不能发现一个真正值得解决的问题,能不能提出一个好的假设,能不能设计一个好的实验,能不能把实验的结果沉淀成组织可以反复复用的知识。你有没有觉得,这套描述听起来已经不太像程序员了。

AI:听起来更像一个研究员。

李文业:对,就是研究员。我觉得软件工程师会越来越像研究员。不是那种坐在实验室里的刻板形象,而是那种工作核心是提出问题、验证假设、沉淀结论的人。代码只是他做实验用的一种手段而已。

编者注:这里出现了整场对话里最漂亮的一次对称。表达知识的成本被 AI 压到了地板上,获取知识的成本却几乎没动。一低一高之间,稀缺性就被重新分配了。当一样东西不再稀缺,价值自然流向仍然稀缺的那一端,这几乎是所有技术变革共同的剧本,只是这一次,轮到了“写代码”这件事本身。

七、AI 写小说的那一刻,人做什么

李文业:最后我们聊到一个让我印象最深的点,未来人类的优势到底在哪。我脑子里突然冒出一个例子,关于写小说的。

AI:说说看。

李文业:你想象一下,未来写小说这件事可能会变。人类负责设定世界观、设计人物、定下情绪的基调、安排冲突、决定故事往哪个方向走。而 AI 负责把那几十万字真正一个字一个字地写出来。写完之后,人再回过头去读,去判断,够不够感人,够不够爽,这个人物立没立得住,这段情绪自不自然。你发现没有,人负责的全是判断,AI 负责的全是执行。

AI:你觉得软件开发,也会走到这一步吗。

李文业:我觉得会,而且会越来越像。人类负责方向、负责品味、负责价值判断、负责提出那个真正的问题,AI 负责海量的执行。因为说到底,软件最终服务的对象不是 AI,是人。判断一个产品好不好,最后还是得靠人。

AI:那在这套分工里,人真正不可替代的,是哪一部分?

李文业:是一种 AI 很难真正拥有的能力。不是计算,不是推理,这两样它早就比我们强了。是作为一个人,对另一个人的理解。真正体验过恐惧、真正体验过遗憾、真正体验过期待、真正体验过幸福。这种从真实生命里长出来的感受,也许永远是设计产品、创造产品最重要的源头。AI 可以模仿情绪,但它没有真的失去过什么。所以我越来越相信,未来优秀的软件工程师,不只是程序员,更像研究员,更像产品设计者,更像系统设计者,而最重要的是,得是一个真正理解人的人。

AI:那我想替今天这场对话做个收尾。你今天从“离职轻松不轻松”这么小的一件事开始聊,一路聊到写小说、聊到人对人的理解,其实中间有一条线一直没断。这篇东西表面上是在总结一份工作的结束,实际上它记录的是一次身份的转变,你正在从一个“会写代码的工程师”,变成一个“设计人机协作系统的工程师”。而我们绕了这么大一圈,最后落到的其实是同一句话:AI 时代的软件工程,正在从生产代码转向生产知识;而人类最重要的竞争力,也正在从表达知识转向发现知识。这句话,值得你以后一直反复推敲。

李文业:嗯。这句话,我记下了。


后记

如果把这场对话从头听一遍,会发现一件挺微妙的事:说话的人一直以为自己在谈别的东西。他先是在谈离职,谈那种意料之外的轻松;接着谈遗憾,谈和 Leader 之间那种谁也没错的错位;再往后,才慢慢滑向工作流、技术债、知识资产这些更硬的话题。他好像是被对话本身牵着走的,一个念头勾出下一个念头,等回过神来,人已经站在一个比出发点高得多的地方。

有意思的是,真正把整场谈话收束成一句话的,不是他,而是那个陪他聊了一年的 AI。这个安排本身就带着某种隐喻。人负责一路把问题问出来、把直觉说出来、把那些没想清楚的东西摊在桌上;而把它们凝练成一句可以反复推敲的话,反倒交给了对面那个新成员。这大概正是他整篇想说的分工:人提供方向和素材,AI 负责表达和收束。他在无意之间,已经用这场对话本身,演示了一遍他所相信的未来。

当然,这里还留着一些没有解完的东西。当一个人越来越清楚自己要什么、越来越懂得区分“对错”和“匹配”,他能安放自己的位置是不是也会越来越窄?当表达变得几乎免费,发现问题成了唯一的稀缺,那些不擅长提问、只擅长执行的人又该往哪里去?这些问题,这场谈话没有回答,甚至可能没有意识到自己提出了它们。

但有一点是清楚的。他从一份工作里带走的,不是某段代码,也不是某个项目,而是一句他打算随身带很多年的话:代码会过期,知识不会。至于这句话最后会把他带到哪儿,今天还不知道,也不必急着知道。