有些软件的变化很有意思。

第一次装它的时候,你可能只想完成一件事:记笔记、剪视频、传文件、聊天、看文档,或者连上一台服务器。

用几年以后再打开,首页已经塞进了资讯流、模板中心、社区、会员、云盘、插件市场、商城、AI 助手、积分任务和几个你从来没有点过的入口。原来三秒能找到的按钮,被挪进了二级菜单。更新日志每个月都很热闹,但你真正天天用的那个功能,可能两年没修好。

软件当然会发展。问题在于,很多产品后来已经不知道自己到底想解决什么问题了。

Windows 11 常用控件示例

图:Microsoft Learn 的 Windows 应用控件示例。平台本身提供大量组件,真正的设计工作仍然是决定什么时候该用、什么时候不该出现。

加功能很容易解释,删功能很难交差

一个团队做季度汇报时,“新增 12 个功能”很好写。

“我们把三个没人需要的入口删了”“把设置页从 17 项缩到 9 项”“某个流程少点两次鼠标”,听起来就没那么壮观。它们对用户可能更有价值,却很难在 PPT 上显得像一次大升级。

于是很多产品慢慢形成一种惯性:旧功能没人敢碰,新功能不断往上叠。

每加一个按钮,往往还会顺手带来一串东西:权限、配置项、帮助文档、埋点、错误状态、兼容逻辑、后端接口、客服话术。用户看到的是一个新入口,维护者背后多了一整条生命周期。

更麻烦的是,这些功能通常不会自然消失。哪怕只有 0.5% 的用户在用,产品团队也会担心删除以后被骂。最后软件就像一个几年没整理过的仓库,东西都“可能有用”,所以谁也不敢扔。

AI 又给这个问题添了一把火

这两年最明显的变化,是很多软件突然多了一个 AI 输入框。

有些确实解决问题。搜索、总结、生成初稿、跨文档查询,这些场景很自然。

还有一些就显得很勉强。一个原本点一下就能完成的操作,被改造成“你可以问 AI”;一个固定规则就能算出来的结果,被包装成“智能分析”;甚至设置页旁边也要放一个闪闪发光的按钮,好像没有它就赶不上时代。

AI 很容易成为新的功能堆积方式,因为它几乎可以被塞进任何地方。

问题还是那个老问题:用户打开这个软件的时候,到底想干什么?

如果产品连这句话都答不清楚,模型再聪明也只是在给混乱加自然语言入口。

好软件往往很克制

Apple 2026 年重新整理的 Human Interface Guidelines,把 Simplicity 写得很直白:界面应该清晰、直接,每个元素都要有存在的理由。它还特别强调,简单不等于把东西全藏起来,关键在于让重要任务始终容易找到。

Microsoft 的设计文档也一直强调 progressive disclosure,也就是把高级选项留到需要的时候再展开。常用功能摆在眼前,复杂能力留在下一层。

这听起来像废话,真正做产品时却很难。

因为克制意味着你要拒绝需求。

老板说能不能加一个入口,客户说同行有这个,销售说某个大客户想要,运营说这里最好放个活动,AI 团队说应该加个 Copilot。每一条单独看都合理。半年以后,它们一起出现在首页上。

Windows 11 右键菜单示例

图:Microsoft 在 Windows 11 中重新整理了右键菜单,把常用命令放到更直接的位置,低频选项继续保留在下一层。

这也是为什么做一个“功能很多的软件”并不稀奇,能长期维持清晰边界的软件反而难得。

功能越多,用户越像客服

产品复杂到一定程度以后,会出现一个很荒唐的现象:软件自己没把逻辑整理清楚,最后要求用户学习它的组织结构。

“这个功能在工作台,不在项目里。”

“要先创建空间,再创建团队,然后把成员加入组织。”

“这个设置只在网页版有。”

“新版入口移到了头像下面。”

“普通会员有功能 A,高级会员有 A+,企业版还有一个同名功能,但权限不同。”

用户本来只是想完成任务,最后先学了一遍产品公司的组织架构。

这类成本很难出现在性能监控里。服务器没有报错,接口也返回 200,埋点甚至可能显示“用户停留时长上涨”。实际上大家只是找不到按钮。

我之前写过一篇 《系统越建越多,为什么办事的人还是要一遍遍填同样的信息》,里面讲的是信息化系统之间的割裂。单个软件内部的功能膨胀,其实是同一种病:组织没有消化复杂度,复杂度就会顺着界面流到用户手上。

一个简单指标:完成最常见任务需要多久

很多产品指标都很复杂。我觉得有一个特别朴素的东西值得长期盯着:

老用户打开软件以后,完成最常见的三件事,各需要多久?

版本升级以后,这个时间是变短了,还是变长了?

如果一个笔记软件增加了 30 个功能,但“新建一条笔记”越来越麻烦,这个版本很难叫进步。

如果一个聊天软件拥有支付、会议、文档、日程、机器人、短视频和 AI,但用户为了找一个三个月前的文件要点七八次,这套生态至少有一部分复杂度已经失控。

软件工程经常讨论性能预算,其实产品也需要一份“复杂度预算”。每增加一个入口,都该问一句:它值得长期占据这里吗?

有些团队需要学会删除

删除功能很痛苦。

你会碰到历史用户、兼容数据、旧接口、文档、客服记录,还有内部某个人对这个功能的感情。可如果什么都不删,软件最终一定会变成博物馆。

真正健康的产品应该允许功能退休:提前公告、给迁移方案、保留数据导出、统计真实使用情况,然后在合适的时候结束它。

开发者也一样。个人项目尤其容易陷进“以后可能用到”的心理,把插件、配置、实验功能全部留着。最后自己都不敢改。

我之前整理 Windows 桌面时也写过类似的体验:《Windows 桌面别再堆图标了:几个不折腾的小改造》。桌面图标和软件功能其实差不多,数量超过某个点以后,继续增加就很难再提高效率。

Windows 深浅色主题示例

图:Microsoft Learn 的主题示例。好的界面能力应该服务于用户选择,而不是把所有选择同时摊在用户面前。

最后

我不反对大而全的软件。

IDE、本地开发工具、办公套件、3D 软件,本来就需要大量能力。专业用户也愿意学习复杂工具,只要这种复杂是有回报的。

真正让人烦的是另一种复杂:为了 KPI 加出来的入口,为了商业化塞进去的横幅,为了追热点硬接进去的 AI,为了不承担删除责任而永久保留的历史包袱。

一个产品真正成熟以后,最难的工作往往已经不是继续证明“我们还能加什么”。

它需要开始回答另一句更难的话:

这个东西,我们真的还需要吗?


资料来源

文中 Microsoft Learn 图片版权归原作者/微软所有,仅用于技术讨论与说明。