Consistency is Primitive

作者: Geoffrey Litt (通常被称为 Butler 或引用 Butler 的框架)

发布时间: 2024-2025年

主题: 定制软件 vs 通用工具,一致性的代价

核心论点

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

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

通用工具的问题

一致性暴政

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

  • 跨平台一致(Web、iOS、Android 必须看起来一样)
  • 跨用户一致(每个人的界面都一样)
  • 跨情境一致(无论使用场景如何,功能都相同)

但问题在于:这种一致性是以牺牲适应性为代价的。

当你强迫所有人都用同样的方式做一件事时,你解决的不是真正的问题,而是你想象中的平均问题。

工具形状的物体陷阱

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

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

定制软件的价值

什么是定制软件?

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

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

定制软件的优势

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

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

障碍1:经济模型的偏见

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

障碍2:技术门槛

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

障碍3:文化偏见

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

AI 时代的定制软件复兴

新可能性

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

  • 用自然语言描述需求
  • AI 生成初步代码
  • 用户迭代调整

例子

"帮我写一个脚本,每天早上检查我的邮件,找出来自老板的紧急邮件,然后发短信提醒我。" —— 30分钟后,一个定制工具诞生。

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

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

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

实践建议

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

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

2. 从小处开始

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

3. 接受不完美

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

4. 分享但不强求

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

与工具批判三部曲的连接

文章 核心洞察 与本文的连接
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 风险

关键引用

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

反思问题

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

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