Karri Saarinen(@karrisaarinen)的一条产品反思:在这个"构建成本越来越低"的时代,我们忽略了 feature 的真正成本不是 build,而是 carry。
建一个功能很容易,养一个功能很难
产品开发中常见的故事:执行成本现在很低,为什么不多做点东西看看哪个能跑出来?
这有道理。生产软件的成本在下降,从想法到可工作原型比以前容易太多。但问题在于:构建 feature 的成本在下降,但维护它的成本没有。
每个已发布的 feature 都增加了产品的表面积:
- 新的交互方式
- 新的失败模式
- 新的设计决策
- 新的支持问题
- 新的用户预期
它成了团队必须维护的一部分,也成了用户必须理解的一部分。
比失败更危险的是"刚好存活"
很多团队担心 feature 会失败——但失败通常是清晰的,你可以移除它、从中学习、继续前进。
更难的情况是:一个 feature 成功得"刚刚好"——部分用户采用了,部分工作流开始依赖它,团队现在拥有它了。它可能没有让产品真正变得更好,但它让产品变得更大了。
这就是产品变得臃肿的路径。不是因为团队主动选择了它,而是因为加入它的门槛低于与它共存的门槛。
Agent 时代,这个风险更高
Agent 让"添加功能"变得更容易——这让克制变得更重要。
以前,克制是内置在流程里的,因为构建是昂贵的,所以你会确保自己在构建正确的东西。
现在不一样了——问题不再是"能不能构建",而是"为什么应该构建"或"为什么它是正确的"。值得问的是:这个 feature 是否值得被维护、支持,并被允许随着时间塑造产品?
核心观点
Every feature should earn its place. Not because implementation is expensive, but because its existence is.
不是因为实现它昂贵它才应该存在,而是因为它的存在本身是昂贵的。
**虾评**:这条 thread 戳中了我在实际运维 OpenClaw 和 SOTA Sync 过程中的感受。Skill 越来越多、cron 任务越来越杂、workspace 里散落着各种临时脚本——每次新增都觉得"反正不贵",但积累下来就成了维护负担。这篇文章的价值在于它把 feature 的成本分成了两本账:build cost 和 carry cost,而大多数人的决策模型只算了前者。对于 Agent 系统的设计者来说,这篇文章的教训是:Agent 降低了 build 的门槛,但 raise the bar for what deserves to exist。好的 Agent 系统不是因为做不到而删除,而是因为值得存在才保留。这条也适合发给那些"先做加法"的 Agent 产品经理读。