软件背后的人:Karri Saarinen 谈 AI 编程代理时代的产品灵魂

Karri Saarinen 的文章《软件背后的人》发布在 karrisaarinen.com 上,并在 Hacker News 上引发了讨论(486 分,175 条评论)。文章认为,优秀的软件承载着创造者的视角,而代理驱动的开发可能会用大量独立、不协调的变更的平均值取代这种视角。文章结尾直接点明了主题:“我想感受到软件背后的创造者,而不是工厂。”

核心主张:产品承载着创造者的视角

Saarinen 的核心论点是,软件质量不仅是流程和需求的功能,更是构建者判断力的体现。他写道:“我认为好的产品承载着创造者的一些特质。他们的经验、他们关心什么、他们认为事情应该如何运作。你可能不知道这些人是谁,但你可以在产品中感受到他们的视角。”

他将此与行业的工厂隐喻——收集需求、构建功能、衡量是否有效——进行了对比,并指出该隐喻无法解释产出上的差异:“两个团队可以与相似的客户交谈,获得相同的技术,却做出截然不同的东西。差异来自于他们如何理解所见之物以及他们构建的风格。”

Hacker News 评论者 @nagalluri 更笼统地表达了同样的观点:“给两个不同的人同一个问题,你可能会得到两个不同的解决方案,这些方案由不同的经验和思维方式塑造。我认为软件就是这种体现的一个例子。”

@abroszka33 提供了一个直接的比较:“看看现代 3A 游戏与小众独立游戏。” @conqrr 将这一观点扩展到软件之外:“这适用于一切,不仅仅是软件……手工制作的东西更容易具有更高的价值。” @ceuk 指出,多年来关于食物的争论也是如此。

为什么“直觉优先于流程”并不意味着“没有证据”

Saarinen 澄清了 Linear 所说的重视直觉而非流程或数据是什么意思。他承认常见的误读——“基于个人偏好做决定,没有太多思考或证据”——并予以驳斥:“我们的意思是,你的直觉是通过经验和理解发展起来的。你从事某件事,与客户交谈,犯错误,并学会关注什么。”

他将直觉描述为一种迫使判断而非躲在指标后面的观点:“直觉是你对某事的看法,迫使你运用自己的判断,而不是躲在无面孔的数据后面。”他还指出,这种视角在发布前通过客户对话得到了改进:“我们自己对这类软件也有过挫折感,但这些对话帮助我们在自身经验之外理解了什么是重要的。”

并非所有评论者都接受这种框架。@nickm12 认为直觉和数据并非对立:“‘直觉’和数据都是了解世界的方式,它们相辅相成。有时,只有当你深入探究直觉与数据为何不一致时,洞察才会出现。”他补充说,流程也是一种工具:“流程体现了我们的最佳实践。但有时我们应该偏离,有时我们应该抛弃或重建它们。这些都是工具箱中的工具。”

@sp1nningaway 在数据问题上持相反立场,声称宣扬数据驱动决策的组织往往糟糕地使用数据:他们“要么用数据做出违反直觉的错误决策,要么追逐强化先前偏见的统计数据。”

叠加功能的问题:为什么产品会变成弗兰肯斯坦的怪物

Saarinen 被引用最多的段落是关于产品如何通过叠加而非重新思考而退化。他观察到“许多产品开始让我感到混乱,包括来自非常成功公司的产品”,更多的思考投入到“技术能做什么以及可以添加什么,而不是它应该采取的形式”。

他的解释是:“添加新功能比重新思考现有功能容易得多。因此,每个产品都变成了能力的集合,而没有统一的观点。”

@jakub_g 称这是“一个非常好且简洁的总结”,并补充了自己的观察:“几乎每个产品都试图扩展到做完全不同的产品过去做的事情,成为一个包罗万象的超级产品。这就像类固醇版的 Zawinski 定律。”

@iamcalledrob 指出了商业上的脱节:“最好的东西并不总是商业上最成功的……JIRA 可能客观上很糟糕,但它仍然能印钞票!” @alexpotato 给出了这种失败模式的具体例证:使用 JIRA,发现一个错误或功能请求,查看 Atlassian 的看板,“看到有人在 10 年前提出了完全相同的问题,3000 个赞,仍然‘正在审查中’。”

@ah1508 用汽车做了一个产品对比:保时捷最近展示了 Mission-S 概念车,“车内甚至没有屏幕”,而在法国,只有基本功能的低成本达契亚 Sandero 是该国最畅销的汽车。这意味着功能克制可以是一种竞争定位,而不是弱点。

对代理式“软件工厂”的担忧

Saarinen 将叠加漂移与当前的工作组织方式联系起来。他写道:“个人与代理合作独立地产生变更,每个人都在运营一个小型软件工厂。每个变更本身可能合理,但放在一起,它们开始像弗兰肯斯坦的怪物,而不是精心雕琢的雕塑。”

关于总体效果,他的结论是:“没有共同的视角、灵魂或思想,产品就变成了所有输出的平均值。曾经赋予它特色的选择正在一天天被稀释。更多的东西能工作了,但更难感受到背后的人甚至任何东西。”

@ttul 同意真正的瓶颈所在:“代理式编码让你在更短的时间内构建更多东西……但瓶颈不是编码执行,而是选择构建什么,并验证构建出来的东西不糟糕。”他预测这将改变:“多久之后它们会被训练来做产品管理?不会太久。抱歉。”

@unsungNovelty 将这一趋势视为意识形态的延续而非新事物:“人们只是把 LLM 添加到‘快速行动,打破常规’的软件工厂工具链意识形态中。重点是赚钱,而且只赚钱。”

@kristianc 在“完成”的两种含义之间划出了最清晰的界限:“这个时代将很好地筛选出那些关心‘完成’意味着‘技术上完整’的人,与那些关心‘完成’意味着‘为另一端的人创造持久价值’的人。AI 基本上只做前者。”

品味和价值观无法自动化

@allenu 认为 AI 缺乏赋予产品意图的人类输入:“最终,AI 没有价值观、意图和品味……当你使用好的软件时,你能感受到制作中的意图。个人(或团队)将他们特定的观点与用户的目标结合起来。”他补充说,代理式编码“可能会因为训练数据而把大部分共享价值观和常见事情做对,但人类仍然需要编辑输出或引导它走上只有他们能看到的正确道路。”

@jwr,一位 SaaS 作者,描述了他现在看到自己价值所在:“价值不在于代码(AI 在这一点上已经能比我写得好),甚至不在于软件架构……而在于决定构建什么和不构建什么,定义产品的整体性格和愿景,看着每个屏幕思考‘这如何帮助我的客户完成他们的工作’。”他指出代价:“这需要时间,因为人们必须多次重新开始,因为有些想法结果并不像最初想的那么好。而且它导致软件被称为‘有主见的’。”

@piro0919 给出了一个实际例子:“即使 Claude Code 写代码,我仍然决定哪些功能进入,屏幕看起来如何,以及它们说什么。为特定用户构建是我还不能留给 AI 的事情。”

@simonbarker87 将原则总结为“伟大的软件是有主见的”,并补充说:“这些主见是创造者的,这不会随着 AI 而改变。”

@blauditore 提出了结构性论点:“实现者也充当待构建软件的人类用户的代表。这基本上从定义上就无法自动化。”

独立开发者可能具有优势

@mik3y 提出了一个直接源于 Saarinen 软件工厂段落的问题:“那么,独立开发者在制作有品味、有主见的软件方面,今天是否有一点优势?”

@absoluteunit1 报告说,独立工作并不能自动解决问题:“我最近辞了工作,一直在构建一个产品。即使我是独立的,我注意到仍然很容易陷入这种运作方式。(甚至在 AI 之前)有一个清晰的产品愿景并坚持它;无论是功能、设计、文案等,在构建产品的整个生命周期中持续做到这一点真的很难。”

@tamersalama 提供了一个相关的观察,关于谁构建了最好的软件:“如果软件的消费者就是编写它的人呢?这不就是通常让软件变得伟大的原因吗?”

文章背后的“创造者之心”传统

@ajrouvoet 将文章与一个更古老的血统联系起来,指出 Fred Brooks 在《人月神话》中引用了 Dorothy Sayers 的《创造者的心》。引用的段落将创造性活动分为“理念、实现和互动”,Brooks 写道:“当有人阅读书籍、使用计算机或运行程序,从而与创造者的心互动时,创造才算完成。”

@swiftcoder 指出,工厂模式从来就不是受人尊敬的软件公司的实际运作方式:“史蒂夫·乔布斯和乔尼·艾维对他们的下属大喊大叫,关于用户体验。甚至贝索斯发送可怕的问号。伟大的软件是一个团队将导演的个人愿景转化为软件的工作……而像 IBM 这样的蓝筹公司则通过上述企业方法生产有用但无灵魂的软件。”他补充说:“不知何故,大多数人似乎不再相信这一点,尽管企业环境反复未能生产出更好的软件。”

@impoppy 将这一观点应用于一个特定工具:FFmpeg。“什么样的头脑创造了 FFmpeg?”在这个评论者的叙述中,答案是 QEMU 和 tcc 的同一作者——“一个异常杰出的头脑”,其界面选择“选择了准确性而非便利性”,产生了一个“如此晦涩以至于不真实”的命令行界面。要点是,即使产品的性格难以相处,也能感受到它。

A/B 测试用优化取代了“某人”

@lightandlight 从文章论点直接联系到一种常见产品实践:“这就是为什么我不喜欢产品开发中的 A/B 测试。它用模糊的广泛吸引力或流氓优化力量取代了‘某人’。”

@convenwis 将担忧扩展到对话界面:“这就是为什么我真的希望我们不会最终陷入许多 AI 重度信仰者认为的未来:一个与 AI 聊天驱动一切、界面基本消失的世界……精心设计和构建的软件使用起来如此令人满意,我会非常难过看到它消失。”

对直觉的规模性质疑

@dozerly 对文章直觉优先的立场提出了最具体的操作性质疑:“直觉方法的一个实际问题是,你无法衡量两个人的直觉相互比较。在较小的组织中这没问题,但一旦你变大,你就无法权衡 50 个人的直觉。”

@cadamsdotcom 提供了一个部分答案,认为 Linear 的立场更容易坚持,因为公司是自己的客户:“Linear 可以……在 Linear 中跟踪 Linear 的构建。当软件背后的人是其客户时,他们会在第一时间做出大量正确的判断。”他补充说,对于不是自己客户的公司,要警告:“计划经常犯错——并保持你的公司、架构和产品与频繁的错误兼容,这样一旦发现就可以转向正确的事情。不要有自我。”

反驳论点:AI 不是原因

@solatic 同意文章的诊断,但质疑其归因于 AI。这位评论者认为,核心不满是创新者困境:“变更或移除,从根本上说,会搞砸用户使用你产品的方式……当用户使用你搞砸的东西时,你就有流失他们的风险,就这么简单。”论点继续说,好的产品领导力“不怕搞砸用户的后果”,并且“好的产品领导力之所以罕见,是因为好的领导力罕见。AI 与此无关。”

@elliotto 在更基本的层面上拒绝了文章的框架:“将商业软件努力的艺术性拟人化可能是一个错误。这些系统的存在是因为资本认为它们值得存在,它们将反映资本的欲望——消费和扩张。”这位评论者认为,“如果可能,资本会砍掉软件生产过程中的所有人类”,而开源和个人驱动的软件是更好的以人为驱动的例子,而“Linear,虽然是一个有效的工单管理系统,可能不是这方面的例子。”

@zeroq 认为文章混淆了几个不同的点。其中包括:一个陶艺家可以为一个杯子收取 200 美元或 2000 美元,因为买家“为杯子附带的故事付费”,但这种动态不适用于软件;时间才是真正的约束,而不是资源;以及“如果你的产品是‘马匹版 Tinder’,那么它是由 LLM 还是素食者写的并不重要。只要它能用。”同一位评论者补充说:“如果你想逐步发展你的产品,vibe coding 会很快阻碍你。它非常适合原型设计和开发定义明确的产品,但从长远来看,你会想知道你的系统是如何工作的。”

@dmitrijbelikov 反驳了文章对更简单软件的乐观态度:“不,因为我们有很多弗兰肯斯坦和聊天界面。”这位评论者还指出,代理之前的代码库也从来不是完美的,而且“软件背后不仅有创造者,还有感兴趣的人和用户。”

@notesinthefield 质疑了整个讨论的基调:“有没有人从非诗意化的角度观察 AI 软件开发对话?我不认为这里 9/10 的人能做到。”

@riazrizvi 认为文章的开篇洞察只对狭窄的受众来说是新颖的:“只有软件开发人员受众会觉得第一句话有洞察力。世界其他地方通常理解表达是执行该表达的人类的产物。那片修剪过的草坪。那条电子邮件。他们为你做的那顿饭。它们是通往某些特定人类的窗口。”

@lifeisloving 指出这个想法在另一个传统中有名字,将其与商品拜物教联系起来:“每个人都同意这种情绪,直到我告诉他们这是一个马克思主义观点。”

为什么这现在很重要

Saarinen 的文章以对更简单软件生产可能带来的乐观态度结尾:“制作软件正变得越来越容易。我希望这能给人更多空间去发展一种视角并进一步追随它。深入理解一个问题,并不断塑造答案,直到各个部分融为一体。”

几位评论者将这一时刻视为过滤器而非损失。@thinkindie 描述了对团队期望的提高:“我发现自己每天都在提高对团队交付物的期望……普通工程师认为他们可以用更少的努力做同样的事情,而他们应该考虑交付更多、更高质量的东西,并利用额外的时间来连接各个点。我相信这将是未来一个巨大的过滤器。”

@hirako2000 更直白地说:“这次我们可能不用等 70 年就要求工艺。”

@Nevermark 提供了最长的视角,指出这个问题比 AI 早半个世纪:“软件设计质量的大订单位——总的来说——几乎没有变化。几十年来肯定越来越少……软件系统普遍表现出明显糟糕的设计。这可能涉及处理复杂底层系统的不可避免的问题,就像它代表应用程序开发人员缺乏品味一样,这不是借口。”

@majkinetor 为构建者总结了实际要点:“这将是 AI 时代唯一决定性的东西——一个基于自己的直觉和品味、基于经验来塑造事物的人。”

Sources

相关