Something maybe wrong

过去两年,我的核心工作从「开发」变成到了「生成」,写代码的时间少了,写 Prompt 和 Skill 的时间多了

这个五一假期没有出门,想了很久:在新的时代,开发者该如何自处?

想清楚这个问题之前,我发现需要先回答一个更基本的问题:我们所言的软件,是什么?

软件在提供什么

我有一个发现,不同时期我们说的「软件」,甚至是不同的东西:PC 时代觉得软件是窗口,移动互联网时代觉得软件是 App,SaaS 时代觉得软件是订阅制的网页... 大家会把自己熟悉的软件外壳,当成了软件本身

尝试一下,如果我们把外壳剥掉,软件剩的是什么?做事的能力

人们安装 Word,要是文字处理能力。用 Photoshop,用的是图像编辑能力。订阅飞书,订阅的是办公管理能力。而所谓的菜单、按钮、页面都只是能力暴露给人的操作面板,点按钮、填字段、切页面只是走向目标的路径

传统软件,把目标拆成一堆操作步骤,交给用户

再看一下 SaaS,CRM 出售销售流程,ERP 出售资源管理流程,飞书和 Slack 出售协作流程。企业买 SaaS,买到的是一套「公司应该如何运转」的默认答案。

一套报销系统规定谁能报、报多少、怎么审、谁负责。一套 CRM 规定客户怎么分配、商机怎么推进、销售怎么汇报。制度写在纸上经常被忽略,写进软件就会自动执行

SaaS 软件,更像是把制度打包,然后出租

那么,软件是在干什么呢?

把原本长在人身上的过程性知识剥离出来,封装起来,复制出去

会计知道怎么记账,后来变成财务软件。销售知道怎么跟客户,后来变成 CRM。运营知道怎么发活动,后来变成营销自动化

本文是用 Claude Code 进行排版的,是用了我的「排版Skill」

如此看来,Skill 也会是一种软件,他也是封装好的、能被执行的能力

软件的位置

最早的计算机是没有软件的。在 ENIAC 时代,计算器能干的事儿是固定的,每算一个新任务,工程师得画好几天重新接线:硬件只认电路,人脑里的意图没法直接灌进去

冯·诺依曼在 1945 年提了一个方案:把指令和数据一起存进内存,机器按顺序读指令执行。不用重新接线了,换一组指令就换一个任务。这个方案后来叫「存储程序」,它创造了一个新的东西:一层可以被随时替换的逻辑。这层逻辑,就是软件的起点

从那以后,所有软件做的事情都没变过:站在人和机器中间,把人想做的事翻译成机器能执行的步骤。早期是科学家自己写汇编,后来有了操作系统、图形界面、浏览器、App Store。每一次形态变化,都是在降低「翻译」的门槛,让更多人能把自己的意图交给机器

软件的作用,是把人的需求,通过合理的交互,翻译成标准的、严谨的处理逻辑,然后控制执行

早期软件把人和计算机连起来,互联网软件把人和信息连起来,SaaS 把人和组织流程连起来。Agent 软件继续扩展这条链路,它连接人、模型、工具、数据、权限、组织规则和外部世界。软件正在从单点工具变成跨系统的协调器

从商业价值的角度看,你站在链路的哪个位置,决定你值多少钱。站在意图入口,控制需求。站在执行层,控制履约。站在数据层,控制上下文。站在权限层,控制边界。站在 Skill 层,控制方法。Agent 时代的竞争,会从抢页面入口升级成抢任务链路里的关键位置

软件,通过它的交互,是把不可操作的世界压缩成可操作的入口。城市交通太复杂,打车 App 把它压缩成一个按钮。金融清算太复杂,支付软件把它压缩成一次确认。软件的形态会不断变化,因为要压缩的在不断变化

AI 带来的三个跨越

这轮 AI 的诞生,让软件的能力带来了三个跨越

第一,从明确操作到模糊意图

之前的软件只能响应明确操作,用户必须知道点哪里、填什么、选哪个选项。AI 软件开始接收模糊意图,用户可以说「帮我做成老板能看懂的版本」。从这一刻起,软件开始承担理解任务的责任

第二,从固定输出到开放结果

传统软件输出预设格式:表格、报表、订单、审批状态、PDF。AI 软件的输出是开放的:文章、图片、网页、代码、方案、临时工具。输出形态由任务决定,不再由系统预设

第三,从单步功能到多步任务

传统软件执行功能,功能是单点动作。Agent 执行任务,任务是目标导向的链路。它要读取上下文、拆解步骤、调用工具、处理中间结果、检查异常、交付结果。这条线一旦跨过去,软件设计的基本方法就要重写

这三点跨过去之后,有三个连锁反应

输入变模糊了,软件就越来越依赖上下文

一句「帮我排一下这篇文章」,没有上下文就只能泛泛处理。如果系统知道你的公众号风格、排版方法论、历史文章、读者偏好,它做出来的结果完全不一样。Memory 从一个附属功能升级成了基础设施

输出变开放了,评估就变得极其重要

固定输出时代测试很简单,看按钮能不能点、字段对不对。开放输出时代,问题变成文章好不好、方案能不能打动人、判断是否可靠。Eval 会成为 Agent 软件的新测试系统,也是产品进化的方向盘

执行变多步了,产品经理设计的东西就不同了

一个工具只需要做好一件事,一个 Agent 要判断什么时候做、先后顺序是什么、异常怎么处理、什么地方需要人确认。设计的对象从按钮路径变成了任务链路

长尾,更多的长尾

当 AI 以极低成本进行开发的时候,我们满足了更多的长尾需求

在以往,软件只服务高频、标准化、大规模的需求。太小的需求(除非是老板自己的),往往会受制于 ROI 而不会被满足。比如:运营岗的同学,希望能获得一个工具,每星期自动盘点一下过去的曝光数据。在过去,这些东西只能人来手动处理,而现在有了AI,这些都可以被即兴软件化

更进一步,软件开始学习用户的工作方法。传统软件要求用户适应系统结构,AI 软件可以学习用户的表达、偏好、文件、风格、流程和判断方式。软件个性化从「给你推荐什么」升级成了「学会你如何做事」

甚至,软件开始临时生成自己的子软件。用户要看交互结果,Agent 生成一个临时网页。用户要批量处理图片,Agent 生成一个批处理工具。这些子软件存在的时间比一次会议还短,用完即弃。在这个过程中,模糊输入、开放输出、多步执行同时存在,不确定性也由此内生

最后

回到开头的问题:当代码变成一次性的,开发者的价值在哪里?过去开发者卖代码,卖的是把需求翻译成指令的能力。现在这个翻译过程 AI 可以做了

当软件本身变成一次性的,很多卖软件的方法就不成立了。或许,更持久的生意是让你的软件,更加深入到客户的关系:更懂思考、生活、工作...