写点什么

记住:你在为谁设计软件?!

  • 2007-04-22
  • 本文字数:1198 字

    阅读完需:约 4 分钟

作为 Rolling Thunder Computing 的主席和计算机课程的教师,David S. Platt 在最近的 SD West(软件开发大会) 的活动上发表了题为“为什么软件如此糟糕?”的讲演。FTPonline 对 Platt 在讲演中所强调部分着重进行了报道,即:作为软件设计者常犯的错误“忽视用户并按照开发者的喜好进行设计”。

除非你在为少数的极客 (骨灰级程序员) 写软件,否则请牢记:你的用户不是你……。这个观点很难出现在开发者的头脑中,他们普遍认为他们所欣赏的用户也一定会欣赏……。再强调一次,你的用户不是你。

Platt 力劝他的听众在设计软件的过程中要更多地关注用户而不是开发者的需要,这一点听起来再明显不过了,他当场使用了几个小问题来引出他的观点:在场的听众所设计软件的用户并非软件开发者。例如,通过听众举手统计, 在场的大多数人都驾驶手动档汽车,这通常比自动挡要难于掌握,难于使用,但是可以使你更好地操纵汽车。很明显,对于大多的开发者而言,他们认为如果能换来更好的操纵感,花一点代价是值得的。而 Platt 指出,在美国销售的汽车中只有百分之 12 到 14 有手动档!很明显,在汽车设计决策方面他的意见不能代表大多数的用户。

为什么大多数的人不喜欢驾驶手动档的汽车?因为他们所关注的不是驾驶本身。他们所关注是可以到达目的地。[听众大笑]

这是一个很重要的分别。你认为用户会按照你希望的方式使用软件,但是他们通常并不认同“你”的方式,他们希望你的软件和他们过去用过的软件在可用性上相似,这样他们就无需改变已经熟悉的工作方式。

用户有自己的工作,有需要达到的目标,有需要联系的人,要完成的使命,软件的正常运转仅仅是这个过程的附属品。当它时时出现问题,或者强迫用户改变自然的工作流程时,它就是用户最大的障碍了。最典型的例子是微软 Office 软件的剪切板功能(最终被从 Office 中去除了),软件可用性方面很小的缺陷都会引起很大的负面体验。在开发过程中遵循简单原则是非常重要的,Platt 建议我们需要做的是“仅仅让它运转起来”,并且提供了作为开发者需要注意的 5 点:

  1. 将一个新人放入设计团队中——所谓新人是指完全不懂得编写软件的人。
  2. 在需要的时候,不要顾忌已有的习惯——老套的方法并不一定正确。
  3. 避免愚蠢的功能——所谓愚蠢是指不要让不确定的功能混入那些确定的功能中。
  4. 小心修改你的软件——发现“大多数沉默的人”是如何想的是件困难的事情,在这种情况下,可用性测试可以提供可信的数据来帮助我们作出决策。
  5. 多想想设计方面的决策是否背离了简单原则。

记住——所谓“恰好工作”是从用户的角度思考,开发者并不使用你的软件。- - - - - -

译者简介:胡凯,2006 年加入 ThoughtWorks ,通过在 ThoughtWorks 多个国家和多个项目的敏捷实践,坚定地站在了敏捷阵营中,目前在进行 CruiseControl 相关的敏捷开源项目。他和许多敏捷开发者一样活跃在敏捷中国 CruiseControl-China 社区中。为 InfoQ 中文站贡献内容,请邮件至 china-editorial@infoq.com

2007-04-22 00:32782

评论

发布
暂无评论
发现更多内容

研发效能DevOps推荐书单

laofo

DevOps cicd 研发效能 持续交付

Java单元测试浅析(JUnit+Mockito)

京东科技开发者

Java 单元测试 代码 JUnit Mockito

Zebec生态持续深度布局,ZBC通证月内翻倍或只是开始

鳄鱼视界

IoT 物联网平台如何实现 100万/秒 消息广播?——实践类

阿里云AIoT

小程序 监控 物联网 传感器 测试技术

CodeArts Repo:6大特性助力企业代码稳定可靠安全无忧

华为云开发者联盟

云计算 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

天翼云推出爬虫管理,助力企业安全高效发展

Geek_2d6073

深入理解跳表及其在Redis中的应用

京东科技开发者

redis 数据结构 算法 跳表 链接

接地电阻要小于4Ω,你知道是为什么吗?

元器件秋姐

科普 元器件 电阻 接地电阻

被骂惨了!复旦版「MOSS」服务器挤崩,一口吃不成ChatGPT

引迈信息

人工智能 AI ChatGPT MOSS

NFTScan x TiDB丨一栈式 HTAP 数据库为 Web3 数据服务提供毫秒级多维查询

NFT Research

数据库 NFT

有没有夫妻相?刷一下脸就知道!

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

宣布 Databricks 支持 Amazon Graviton2,性价比提高3倍

亚马逊云科技 (Amazon Web Services)

数据库 存储

MQTT协议Keep Alive详解

EMQ映云科技

物联网 IoT mqtt 企业号 2 月 PK 榜 半连接

瓴羊Quick BI提供移动端自助分析整体解决方案,Fine BI、Smart BI何时赶上?

小偏执o

如何将Excel文档转换为PDF文档

Geek_249eec

Java Excel PDF

任务管理-轻松搞定 IoT 设备重启、资源包更新、固件升级等业务——实践类

阿里云AIoT

json 物联网 数据格式

如何有效的解决代码的圈复杂度

京东科技开发者

代码 计算 圈复杂度 点边计算

chatGPT接入微信公众号方法总结(纯聊技术)

特立独行的猫

微信 ChatGPT 公众号接入

模块7作业

程序员小张

「架构实战营」

2023年Java面试题精选(蚂蚁金服/滴滴/美团/拼多多腾讯)

架构师之道

java面试

F5 分布式云服务为软银集团的私有基础设施带来云原生能力

F5 Inc

DevEco Studio端云协同开发之云数据库

白晓明

云数据库 HarmonyOS 端云协同

有奖调研!第五期(2022-2023)传统行业云原生技术落地调研——金融篇

York

容器 微服务 云原生 问卷调研

2023“Java基础-中级-高级”面试集结,已奉上我的膝盖

程序知音

Java java面试 金三银四 后端技术 Java面试八股文

MQTT 5.0介绍

EMQ映云科技

性能 物联网 IoT mqtt 企业号 2 月 PK 榜

PDF电子书下载 和 企业物联网实例 视频讲解——实践类

阿里云AIoT

运维 监控 物联网

A/B测试成为企业“新窗口”:增长盈利告别经验主义,数据科学才是未来

字节跳动数据平台

大数据 AB testing实战 企业号 2 月 PK 榜

第七周作业-王者荣耀商城异地多活架构设计

不爱学习的程序猿

数据治理如何做?火山引擎DataLeap帮助这款产品3个月降低计算成本20%

字节跳动数据平台

大数据 数据治理 数据研发 企业号 2 月 PK 榜

基于SpringBoot实现操作GaussDB(DWS)的项目实战

华为云开发者联盟

数据库 后端 华为云 企业号 2 月 PK 榜 华为云开发者联盟

Python基础练习题(一)

漫步桔田

记住:你在为谁设计软件?!_研发效能_Deborah Hartmann Preuss_InfoQ精选文章