news 2026/6/9 19:18:39

从用户的角度考虑问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从用户的角度考虑问题


我们常说做产品要从用户的角度考虑问题,这需要有"同理心"。软件团队的设计师和软件工程师有"同理心"(Empathy)么[注释3]?什么是同理心?就是理解别人的处境、心理、动机的能力。西方谚语Putyourself in other people'sshoes.正是此意。设计不同于传统的数学题,是没有唯一的标准答案的。有一颗为用户着想的"同理心",是好的产品设计的出发点。
从用户的角度考虑曾有网友爆料,福建某银行公布的反假币电子邮箱地址长度超过70个字符(字母和数字组成)。该银行工作人员解释
称,该地址在内部使用时是中文,和外网衔接时会变成一长串代码。有网友根据GBK编码翻译出部分代码对应的汉字为"出纳与现金管理"。

我们试着猜测一下事情的经过,以及技术人员是怎么想的。
领导/项目经理:要公布一个电子邮箱地址,让人民群众能发邮件投诉假币和其他事情!
技术人员:好,内网地址搞好了,工具自动转成外网的地址。搞定!测试人员:把邮件地址复制/粘贴到电子邮件的地址栏,发送一个邮件试试看,收到了么?收到了。好,通过!
项目经理:好,把邮件地址印成提示牌,搬到各地的营业处去!
有同理心的软件工程人员是怎么想的呢?他们会想到:我们的客户是什么文化水平,平时在哪种情况下会发现假币,他们发现后会怎样发邮件报告?他们会在办公室里,一边喝茶(用前面的三种茶壶之一),一边用鼠标和键盘复制/粘贴邮件地址,然后发邮件?不会,那他们会怎么做,我们的产品经理和设计人员设身处地自己做一下看看?手动敲入70个字母和数字组合的地址?这不是Bug如果你输入中文就没问题了。我在工作中时不时要重装电脑,我一般装英文的操作系统。装好电脑之后,第一件事情就是装中文输入法。系统自带了几个,我觉得都不够好,所以我想直接装最新的微软拼音中文输入法。于是我用我司推荐的搜索引擎,输入[MicrosoftChinesepinyinIME],搜索结果中居然都没有最新版本的链接。于是我就发邮件给相关项目组的同事提意见。几经E-mail反复转发/问答之后,有一个同事回答:
如果你输入中文"微软拼音中文输入法"。搜索结果的第一条就是正确的链接!拜托,我之所以要搜索这个东西,就是因为我的机器不能输入中文!
用户需要帮助,但是用户没有那么笨。微软必应搜索[注释4]有一个"实时显示英语解释"的功能,但是这个功能把鼠标所在的所有英语单词都解释一下,包括小学生都懂的"a,of,at,on,and,the,he,she,...",用户的鼠标常常会无意地停留在这些词语上面,你就会看到这个"英语翻译"功能自作多情地告诉你"a"是什么意思,顺便把页面的其他文字给遮住了:

我们的PM/Dev/Test在设计/实现/测试这个功能的时候想过目标用户的英文水平是什么样的么?他们需要哪种程度的英文解释?如果他们连"a"都不懂,他们能来到你这个网页搜索含有英文的结果么?!
光吃狗食也不够。微软公司有"吃狗食"(Dogfood)的传统,团队成员都尽可能在实际工作和生活中使用自己开发的产品(从内部测试版开始),从而发现问题。我在Outlook团队做开发的6年中,大部分时间都使用非正式的测试版本,有些是前一天刚构建好的产品。这种传统保证了开发人员能了解软件功能的实际表现,是非常有道理的。对于自己的产品,如果我们的员工经常"吃狗食",上面提到的问题就不会出现除非微软员工连"a"都需要解释......但是,这种优秀的传统也有一个副作用,由于我们十分了解自己写的软件,而我们的心理、技术能力和一般用户有很大差别(参见下文提到的"认知阻力"),所以也
会出现问题。有一次,一个同在微软的朋友给我打电话,问电子邮件软件Outlook的一个怪问题如何解决。我说,你到菜单上Tools |OptionAdvanced...然后把某一个选择框勾选掉就可以了。他说我哪敢啊,这还是高级选项(AdvancedOption),万一搞错了怎么办?很多程序员都没有意识到,用户对那些选项对话框中的种种选择会有很大的畏难情绪,而程序员则觉得自己开发的功能必须有几个高级选项,才显得有水平。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 18:51:10

软件服务始终都要记住用户的选择

作者以前所在的研究院经常有外国的学生来实习,或是外国的学者来做短期交流。为了工作和生活的需要,他们大多在某大型国有银行注册账号,下面的事情我碰到过好几回。 1.用户上了银行的门户网站,把语言改成English,开始注…

作者头像 李华
网站建设 2026/6/9 0:00:42

19、多线程渲染与延迟上下文:双抛物面环境映射及延迟渲染实现

多线程渲染与延迟上下文:双抛物面环境映射及延迟渲染实现 双抛物面环境映射实现 双抛物面环境映射(Dual Paraboloid Environment Mapping,DPM)是一种环境映射技术,相较于立方环境映射,它仅需两个渲染目标,能节省纹理内存,但采样需手动实现。 准备工作 从多线程立方…

作者头像 李华
网站建设 2026/6/9 18:52:39

20、延迟渲染的实现

延迟渲染的实现 1. 实现屏幕对齐四边形渲染器 屏幕对齐四边形(也称为全屏四边形)是延迟渲染技术的重要组成部分,常用于执行一系列屏幕空间操作,如应用环境光或实现屏幕空间环境光遮蔽(SSAO),并为访问G缓冲区中的信息提供了便捷方法。 操作步骤 创建HLSL着色器文件 …

作者头像 李华
网站建设 2026/6/9 14:11:29

21、图形渲染技术:多采样抗锯齿与Direct3D集成XAML和Windows 8.1

图形渲染技术:多采样抗锯齿与Direct3D集成XAML和Windows 8.1 多采样抗锯齿(Multisample Anti - Aliasing) 经典延迟渲染存在一个问题,为支持内置硬件抗锯齿,需实现额外着色器代码从MSAA G - Buffer正确采样。Direct3D的最新改进通过使用 SV_SampleIndex 和 SV_Covera…

作者头像 李华
网站建设 2026/6/9 6:50:21

22、整合 Direct3D 与 XAML 和 Windows 8.1

整合 Direct3D 与 XAML 和 Windows 8.1 1. D3DAppViewProvider.Run 函数 在 D3DAppViewProvider.Run 函数中,我们会为设备资源初始化每英寸点数(DPI),然后进入主应用程序消息循环。通过调用 CoreDispatcher.ProcessEvents 来调用事件调度程序。处理完事件后,我们调用…

作者头像 李华
网站建设 2026/6/9 17:37:39

LangFlow本地部署 vs 云端运行:成本与性能权衡

LangFlow本地部署 vs 云端运行:成本与性能权衡 在AI应用开发日益普及的今天,越来越多团队开始尝试构建基于大语言模型(LLM)的智能系统——从自动客服到文档问答,再到复杂的工作流自动化。然而,直接使用Lang…

作者头像 李华