随笔 🗓️ 2022-07-26

作者头像
周骅 , 
• 616个字 • 3分钟读完
更多随笔

今天与同事聊到一个话题,为什么做出来的工具不好用。我常拿“工程师思维”与“产品思维”做对比,一个从“能做到什么”出发,一个从“用户需要什么出发”,两者泾渭分明。我们抽象一点看,当我们用这两种思维做同一类工具时,工程师思维会向着灵活性、可配置性发展;而产品思维会向着易用性发展。

比如我们设计一个简单的按钮组件,希望能在我们的产品里复用这个组件,那么这个组件该怎么设计呢?如果用工程师思维,从功能性的角度出发,按钮组件应该能支持文案、图标的配置;通栏、圆角、阴影、边框、大小、间距等视觉样式的定义;等待、禁用等特殊状态支持;hover、鼠标按下等交互状态下的色彩配置;键盘事件的响应、防重复点击等高级功能……只要这么设计,我想这个按钮的功能应该能够满足基本所有的场景的需求,唯一的问题是,调用它的时候,需要配置几十个参数,文档也会特别长。而用产品思维,更多地是从场景出发,我们的产品中可能有哪些场景要用到按钮,从布局上,通栏按钮、正常按钮;从功能上,主要按钮、次要按钮、危险操作按钮等;从形态上,文字按钮、图标按钮、圆角矩形、圆形;从大小上,几档固定尺寸足矣。虽然这么做通用性很差,但调用起来却很方便,文档也很短。

按钮只是一个例子而已,事实上所有的产品、工具都有这两个方向的拉扯,通常不会那么极端地要么无所不能但无比复杂,要么特定场景下简单丝滑,而是介于中间的形态,有场景的适应,也有一定的灵活性。但是随着项目进行地更深入,我们很难不断地总结场景,而逐步滑入堆功能的一端,因为需求来源已经脱离了用户场景,我们产品背负的历史包袱、沉没成本也在增加,最终导致的结果就是越来越臃肿、越难用。