软件背后的人: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 称这是“一个非常好且简洁的总结”,并补充了自己的观察:“几乎每个产品都试图扩展到做完全不同的产品所做的事情,变成一个包罗万象的超级产品。这就像类固醇版的扎温斯基定律。”
@iamcalledrob 指出了商业上的脱节:“最好的东西并不总是商业上最成功的……JIRA 可能客观上很糟糕,但它仍然能印钞!”@alexpotato 给出了这种失败模式的具体例证:使用 JIRA,发现一个 bug 或功能请求,查看 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
関連
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch