运维123 - 软件设计
type: channel
link: https://www.sddts.cn/index.php/category/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/
description: 软件设计
items: 优秀软件的克制之道：知道何时停止
items: 后座软件（Backseat Software）演变深度审视

优秀软件的克制之道：知道何时停止
type: item
date: 2026-03-06T00:45:46+00:00
description: 优秀软件的克制之道：知道何时停止核心问题在软件行业中，普遍存在一种无节制扩张的倾向。开发者和产品团队往往在产品已经很完善之后，继续添加不必要的新功能，甚至改变产品的核心定位。这种做法导致软件变得臃肿、复杂，最终失去其原有的简洁和高效。系统分析现象描述作者通过一个假想的场景说明了这一问题：想象一下，你完成了 Linux 发行版和软件包的更新，重启后发现原本简单的 ls 命令被替换成了一个"AI 驱动的目录智能系统"：NOTICE: The legacy utility `ls` has evolved. AI-Powered Directory Intelligence™ The classic `ls` command has reached the end of its lifecycle. For decades it faithfully listed files. But listing is no longer enough. The filesystem deserves to be *understood*. Introducing: Adaptive Listing System `als` doesn't just show files. It predicts which ones you meant. It ranks them. It understands you. Your current `ls` binary will remain functional for: 30 days虽然这是一个夸张的例子，但它准确反映了当前软件行业的现状。系统组件分析这种"无节制扩张"现象的成因可以分解为：组件描述产品定位迷失不清楚软件的核心价值用户需求误解响应表面需求而非解决根本问题营销驱动为追求"新热点"而改变产品定位复杂性积累每个新功能都带来维护成本问题本质软件的本质是解决问题，而不是尽可能做更多事情。一个优秀的软件应该：明确自己解决的问题坚守自己的定位知道何时停止添加功能改进而非改变解决方案经典原则37Signals（Basecamp 的创建者）的创始人 Jason Fried 和 David Heinemeier Hansson 在《Rework》和《Getting Real》两本书中阐述了反直觉的产品设计原则：原则含义约束是优势小团队、紧预算和有限范围迫使做出更好的决策忽略功能请求不要按用户要求构建；理解底层的根本问题尽早发布，频繁发布真实的半成品胜过完美的虚构产品震中设计从核心界面/交互开始，而不是边缘（导航、页脚等）默认说不每个功能都有隐藏成本：复杂性、维护、边缘情况解决自己的需求构建你自己需要的东西；你会做出更好的决定实践应用MinIO 到 AIStor 的转型争议MinIO 原本是一个高性能的对象存储解决方案，以其简单和可靠著称。后来它转型为 AIStor，试图与 AI 存储市场挂钩。Oracle Database 的 AI 标签Oracle Database 被重新品牌化为 "Oracle AI Database"，尽管它本质上仍然是传统的数据库产品。这些例子说明了一个普遍的焦虑：害怕错过"下一个大趋势"，不惜改变自己的核心定位。系统架构图graph TD A[软件产品] --> B{核心定位清晰?} B -->|是| C[保持专注] B -->|否| D[迷失方向] C --> E[优化核心功能] C --> F[拒绝不必要的功能] D --> G[无限制添加功能] D --> H[追逐营销热点] E --> I[产品变得更好] F --> I G --> J[产品变得臃肿] H --> J J --> K[失去核心价值]深入分析为什么"知道何时停止"如此困难人类心理的极简主义倾向：我们总是想要"更多"，认为功能越多意味着价值越大营销压力：新功能更容易被营销，而"保持不变"很难成为卖点竞争焦虑：害怕竞争对手推出新功能，于是跟风添加用户期望管理：用户经常提出功能请求，但真正需要的是对现有问题的更好解决方案成为"事实标准"的价值作者提出了一个重要观点：成为某个特定问题的"事实标准"（de facto standard）的价值，远大于将自己品牌化为下一个没人想到的"新热点"。这意味着：简洁比新潮更有价值可靠比功能丰富更重要成为"默认选择"比成为"新鲜事物"更有意义参考资源Rework - Jason Fried, David Heinemeier HanssonGetting Real - Jason Fried, David Heinemeier HanssonOlivier Girardot's Ramblings - 原文博客

优秀软件的克制之道：知道何时停止
type: item
date: 2026-03-05T21:44:12+00:00
description: 优秀软件的克制之道：知道何时停止核心问题在软件行业中，普遍存在一种无节制扩张的倾向。开发者和产品团队往往在产品已经很完善之后，继续添加不必要的新功能，甚至改变产品的核心定位。这种做法导致软件变得臃肿、复杂，最终失去其原有的简洁和高效。系统分析现象描述作者通过一个假想的场景说明了这一问题：想象一下，你完成了 Linux 发行版和软件包的更新，重启后发现原本简单的 ls 命令被替换成了一个"AI 驱动的目录智能系统"：NOTICE: The legacy utility `ls` has evolved. AI-Powered Directory Intelligence™ The classic `ls` command has reached the end of its lifecycle. For decades it faithfully listed files. But listing is no longer enough. The filesystem deserves to be *understood*. Introducing: Adaptive Listing System `als` doesn't just show files. It predicts which ones you meant. It ranks them. It understands you. Your current `ls` binary will remain functional for: 30 days虽然这是一个夸张的例子，但它准确反映了当前软件行业的现状。系统组件分析这种"无节制扩张"现象的成因可以分解为：组件描述产品定位迷失不清楚软件的核心价值用户需求误解响应表面需求而非解决根本问题营销驱动为追求"新热点"而改变产品定位复杂性积累每个新功能都带来维护成本问题本质软件的本质是解决问题，而不是尽可能做更多事情。一个优秀的软件应该：明确自己解决的问题坚守自己的定位知道何时停止添加功能改进而非改变解决方案经典原则37Signals（Basecamp 的创建者）的创始人 Jason Fried 和 David Heinemeier Hansson 在《Rework》和《Getting Real》两本书中阐述了反直觉的产品设计原则：原则含义约束是优势小团队、紧预算和有限范围迫使做出更好的决策忽略功能请求不要按用户要求构建；理解底层的根本问题尽早发布，频繁发布真实的半成品胜过完美的虚构产品震中设计从核心界面/交互开始，而不是边缘（导航、页脚等）默认说不每个功能都有隐藏成本：复杂性、维护、边缘情况解决自己的需求构建你自己需要的东西；你会做出更好的决定实践应用MinIO 到 AIStor 的转型争议MinIO 原本是一个高性能的对象存储解决方案，以其简单和可靠著称。后来它转型为 AIStor，试图与 AI 存储市场挂钩。Oracle Database 的 AI 标签Oracle Database 被重新品牌化为 "Oracle AI Database"，尽管它本质上仍然是传统的数据库产品。这些例子说明了一个普遍的焦虑：害怕错过"下一个大趋势"，不惜改变自己的核心定位。系统架构图graph TD A[软件产品] --> B{核心定位清晰?} B -->|是| C[保持专注] B -->|否| D[迷失方向] C --> E[优化核心功能] C --> F[拒绝不必要的功能] D --> G[无限制添加功能] D --> H[追逐营销热点] E --> I[产品变得更好] F --> I G --> J[产品变得臃肿] H --> J J --> K[失去核心价值]深入分析为什么"知道何时停止"如此困难人类心理的极简主义倾向：我们总是想要"更多"，认为功能越多意味着价值越大营销压力：新功能更容易被营销，而"保持不变"很难成为卖点竞争焦虑：害怕竞争对手推出新功能，于是跟风添加用户期望管理：用户经常提出功能请求，但真正需要的是对现有问题的更好解决方案成为"事实标准"的价值作者提出了一个重要观点：成为某个特定问题的"事实标准"（de facto standard）的价值，远大于将自己品牌化为下一个没人想到的"新热点"。这意味着：简洁比新潮更有价值可靠比功能丰富更重要成为"默认选择"比成为"新鲜事物"更有意义参考资源Rework - Jason Fried, David Heinemeier HanssonGetting Real - Jason Fried, David Heinemeier HanssonOlivier Girardot's Ramblings - 原文博客

后座软件（Backseat Software）演变深度审视
type: item
date: 2026-01-30T23:46:58+00:00
description: 后座软件（Backseat Software）演变深度审视一、新闻概述1. 标题后座软件（Backseat Software）：从工具到渠道的软件演变2. 发布时间2026 年 1 月 18 日3. 来源Mike Swanson's Blog二、核心内容1. 事件摘要A. 主要内容Mike Swanson 发表了一篇深度技术评论，探讨了现代软件从"用户操作的工具"向"主动干预用户的渠道"转变的现象，并将其命名为"后座软件"（Backseat Software）。B. 核心亮点提出后座软件概念：软件从工具转变为持续打断用户的渠道追溯了从磁盘时代到推送通知时代的软件演变历程分析了指标驱动、A/B 测试、增长黑客如何塑造这一趋势提出了设计安静软件的五大实践建议2. 关键信息A. 核心定义后座软件：软件从用户操作的工具，转变为对用户进行操作的渠道B. 主要论点一旦产品学会主动与用户对话，就很难让它保持安静这种变化是渐进的，每一步都有合理的理由指标驱动设计让软件从"好软件"转向"高参与度"3. 背景介绍A. 作者背景Mike Swanson 是前微软员工，有丰富的软件开发和产品设计经验。B. 相关上下文文章回应了近年来用户对软件日益增多的打扰式设计的普遍不满。三、详细报道1. 软件演变历程A. 磁盘时代（1990s）软件作为实体产品发行，特点包括：软件购买后永久使用更新需要等待下一个版本发布软件无法主动与开发者通信用户与软件是独处关系优势：软件稳定，不打扰用户劣势：Bug 修复缓慢，安全问题无法及时响应B. 在线时代（2000s）互联网普及带来的变化：graph LR A[离线软件] -->|互联网普及| B[在线连接] B --> C[自动更新] B --> D[崩溃报告] B --> E[遥测数据] C --> F[快速修复 Bug] D --> G[发现真实问题] E --> H[理解使用模式]这一阶段的变化：自动更新成为常态崩溃报告帮助修复问题遥测数据帮助理解使用模式开发者可以看到失败模式，而非猜测C. 反向通道的建立软件不再只是接收指令，它开始"回家说话"：崩溃报告：证明这是真实问题更新检查：方便用户许可激活：减少盗版但问题随之而来：既然已经连接了，还能学到什么？D. 一切皆可测量（2005+）Google Analytics 主流化后，仪表盘成为软件开发的标准配置。词汇转变：DAU（日活用户）MAU（月活用户）留存率漏斗黏性队列转化游戏化重心转移：从"这是好软件吗？"到"这会增加参与度吗？"E. 实验时代（A/B 测试）A/B 测试改变了产品团队的角色：不再只是构建工具并观察使用开始在人身上运行实验调整文案、布局、时机、摩擦、流程每个屏幕都变得临时性每个交互都成为假设危险后果：产品愿景变得可有可无判断力让位于迭代品味让位于表现产品有动力但无方向F. 推送通知时代（2009+）Apple 的推送通知服务（2009 年 iOS 3.0）使打断变得更廉价：软件不再等待用户打开可以随时"拍拍肩膀"合法用途：用户请求的消息用户配置的提醒用户选择的提醒滥用情况："我们想念你""你还没有完成设置""你还没有尝试这个功能""回来看看有什么新变化"2. Goodhart 定律的陷阱A. 引用名言"并非所有能计算的事物都重要，并非所有重要的事物都能被计算。"—— William Bruce Cameron（常被误归于爱因斯坦）B. Goodhart 定律当度量成为目标时，它就不再是好的度量。C. 真实案例微软某团队想要删除一个功能，因为"分析显示没人使用"。但查看 UI，这个功能被埋得越来越深：曾经容易找到然后移到菜单中然后移到子菜单然后移到设置面板然后移到高级部分然后基本不可见分析没有证明功能不受欢迎，分析证明了团队把它埋了起来。3. 智能设备的蔓延"智能"模式正在扩散：智能电视智能音箱智能恒温器智能家电任何连接 Wi-Fi 的设备都可以：更新自己（通常是好事）发送诊断（通常是好事）收集使用数据（有时可辩护）打断你（几乎总是烦人）向你营销（几乎不是你购买它的目的）A. ACR 技术一些"智能"电视使用自动内容识别（ACR）来识别屏幕上的内容，并将其转化为数据。这是对屏幕上显示的任何内容（流媒体、广播或本地播放）进行像素采样的指纹。B. 监控资本主义Shoshana Zuboff 描述的监控资本主义与此相关：不仅是观察行为，而是干预以塑造行为。graph TB subgraph 监控资本主义循环 A[观察行为] --> B[数据收集] B --> C[预测分析] C --> D[干预设计] D --> A end subgraph 用户体验 E[用户意图] -->|被拦截| F[干预措施] F -->|引导行为| G[更多数据] G --> A…