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 | 好设计是简单的、解决问题的 | 定制软件追求简单和精确,而非通用 |
三部曲的完整图景:
- Manidis 警告我们复杂系统的陷阱
- Butler/Litt 提出解决方案:回归定制
- Turkovic 警告 AI 时代的 burnout 风险
关键引用
一致性是原始的。它是当我们不知道更好时的默认选择。
真正的成熟工具用户不是那些掌握最多通用工具的人,而是那些知道何时为自己建造工具的人。
AI 不会让我们都成为软件工程师,但它会让软件工程师的技艺变得民主化——如果我们是聪明的使用者。
反思问题
- 你使用的工具中,有多少是在强迫你适应它们,而不是它们适应你?
- 如果你能建造一个只为你工作的工具,它会是什么?
- 你在"等待完美工具"上浪费了多少时间,而不是建造一个够用的工具?
- 你的团队/组织是否过度追求工具的一致性,而牺牲了适应性?
- AI 辅助编程让你更接近还是更远离"建造自己的工具"?
#custom-software #consistency #malleable-software #ai-assisted-programming #tools #adaptation #workflow