$ cat ./article.md

Consistency is Primitive

作者: Geoffrey Litt (通常被称为 Butler 或引用 Butler 的框架) 发布时间: 2024-2025年 主题: 定制软件 vs 通用工具,一致性的代价
$ cat ./section-1.md

核心论点

一致性是原始的。当我们把一致性当作最高价值时,我们失去了适应性和情境敏感性。

Butler/Litt 提出:追求跨平台、跨场景的一致性会扼杀工具的真正力量。定制软件(custom software)之所以强大,正是因为它不一致——它精确地适应特定情境的需求。


$ cat ./section-2.md

通用工具的问题

一致性暴政

现代软件设计将一致性奉为圭臬:

  • 跨平台一致(Web、iOS、Android 必须看起来一样)
  • 跨用户一致(每个人的界面都一样)
  • 跨情境一致(无论使用场景如何,功能都相同)
但问题在于:这种一致性是以牺牲适应性为代价的。
当你强迫所有人都用同样的方式做一件事时,你解决的不是真正的问题,而是你想象中的平均问题。

工具形状的物体陷阱

通用工具往往成为 Manidis 所说的"工具形状的物体":

  • 它们看起来功能齐全
  • 它们承诺解决所有问题
  • 但实际上,它们解决的是没有人真正拥有的问题

$ cat ./section-3.md

定制软件的价值

什么是定制软件?

定制软件是为特定人、特定任务、特定情境构建的软件:

  • 一个为特定研究团队定制的数据录入界面
  • 一个为特定设计师 workflow 优化的脚本
  • 一个为特定家庭管理的家务分配应用

定制软件的优势

| 通用工具 | 定制软件 | |---------|---------| | 解决平均问题 | 解决具体问题 | | 需要用户适应工具 | 工具适应用户 | | 功能臃肿 | 功能精确 | | 学习曲线陡峭 | 直观自然 | | 维护成本外部化 | 维护成本内部化但可控 |


$ cat ./section-4.md

为什么我们不建更多定制软件?

障碍1:经济模型的偏见

  • SaaS 模式鼓励通用性(一个产品服务百万用户)
  • 定制软件看起来"不划算"
  • 但:通用工具的隐藏成本(订阅费、学习成本、适应成本)被忽视

障碍2:技术门槛

  • 建造定制软件需要编程能力
  • 但:AI 辅助编程正在降低这一门槛
  • LLM 让"为特定任务写脚本"变得可行

障碍3:文化偏见

  • 我们被教导要"使用标准工具"
  • 定制被视为"hack"或"不专业"
  • 但:真正的专业是知道何时打破标准

$ cat ./section-5.md

AI 时代的定制软件复兴

新可能性

LLM 让定制软件的建设成本大幅下降:

  • 用自然语言描述需求
  • AI 生成初步代码
  • 用户迭代调整
例子
"帮我写一个脚本,每天早上检查我的邮件,找出来自老板的紧急邮件,然后发短信提醒我。" —— 30分钟后,一个定制工具诞生。

警告:不要重复工具形状物体的错误

即使有了 AI,我们仍需警惕:

  • 不要为了"配置的乐趣"而过度工程化
  • 记住 Manidis 的警告:装置的运行不是产出
  • 定制软件的价值在于解决具体问题,不在于建造过程本身

$ cat ./section-6.md

实践建议

1. 识别你的"不一致"需求

  • 你现在的 workflow 中有哪些摩擦点?
  • 通用工具强迫你做了什么不自然的事?
  • 如果你能魔法般改变一个工具,你会改变什么?

2. 从小处开始

  • 不要试图重建整个系统
  • 从一个具体的小任务开始
  • 用脚本、自动化、简单的 web app 开始

3. 接受不完美

  • 定制软件不需要像商业产品那样 polished
  • 它只需要对你有效
  • 愿意迭代,愿意丢弃

4. 分享但不强求

  • 你的定制软件可能对别人也有用
  • 但记住:它是为你的情境优化的
  • 分享代码,但不要追求"通用化"

$ cat ./section-7.md

与工具批判三部曲的连接

| 文章 | 核心洞察 | 与本文的连接 | |------|---------|-------------| | Manidis - Tool Shaped Objects | 复杂系统可能只是在"让数字上升" | 通用工具往往成为工具形状物体 | | Turkovic - AI Makes Coding Easier | AI 降低门槛但也带来 burnout | AI 使定制软件可行,但需警惕过度工程 | | Graham - Taste for Makers | 好设计是简单的、解决问题的 | 定制软件追求简单和精确,而非通用 |

三部曲的完整图景
  1. Manidis 警告我们复杂系统的陷阱
  2. Butler/Litt 提出解决方案:回归定制
  3. Turkovic 警告 AI 时代的 burnout 风险

$ cat ./section-8.md

关键引用

一致性是原始的。它是当我们不知道更好时的默认选择。
真正的成熟工具用户不是那些掌握最多通用工具的人,而是那些知道何时为自己建造工具的人。
AI 不会让我们都成为软件工程师,但它会让软件工程师的技艺变得民主化——如果我们是聪明的使用者。

$ cat ./section-9.md

反思问题

  1. 你使用的工具中,有多少是在强迫你适应它们,而不是它们适应你?
  2. 如果你能建造一个只为你工作的工具,它会是什么?
  3. 你在"等待完美工具"上浪费了多少时间,而不是建造一个够用的工具?
  4. 你的团队/组织是否过度追求工具的一致性,而牺牲了适应性?
  5. AI 辅助编程让你更接近还是更远离"建造自己的工具"?

#custom-software #consistency #malleable-software #ai-assisted-programming #tools #adaptation #workflow