写点什么

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

  • 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:32706

评论

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

“58同城”架构师分享:联盟广告平台架构及实践

Java架构师迁哥

即时通讯是怎么做到的?

v16629866266

微信沟通小技巧

熊斌

远程办公 职场成长 远程协作 28天写作

20 行代码:Serverless 架构下用 Python 轻松搞定图像分类和预测

Serverless Devs

Python 人工智能 Serverless 云原生

DeFi去中心化金融借贷系统开发有哪些需要了解的?

W13902449729

defi 去中心化金融借贷系统开发

OVS 设计与实现阅读笔记,五年前的这篇论文里这些问题已经明了

York

Kubernetes k8s Kube-OVN

视频课程|Kube-OVN 入门与应用实战 (第2期)

York

灵雀云 Kubernetes k8s Kube-OVN

视频课程|Kube-OVN 入门与应用实战 (第3期)

York

灵雀云 Kubernetes k8s Kube-OVN

架构师训练营第 1 期 -大作业2

习习

容器网络方案调研:都是网络插件,Kube-OVN凭啥脱颖而出?

York

灵雀云 Kubernetes k8s Kube-OVN

2021年阿里巴巴面试参考指南泰山版开源(Java版)

Java架构追梦

Java 架构 面试 分布式 微服务

TCP波场拼智能合约系统开发技术

薇電13242772558

智能合约 dapp

面向开发者的播客清单

LeanCloud

程序员 开发者 苹果 私有云 播客

区块链挖矿软件系统开发|区块链挖矿APP开发

系统开发

又双叕更新,开源网络插件Kube-OVN 1.4.0 版发布!支持跨集群容器网络、NetworkPolicy 日志

York

灵雀云 Kubernetes k8s Kube-OVN

2021年的28天写作,从微信视频号开始

赵新龙

法庭上的CTO 28天写作

性能压测工具-JAVA

MDF智能合约系统开发技术

薇電13242772558

智能合约 dapp

@Repeatable注解作用

张健

架构师训练营第 1 期 - 大作业 1

习习

代码整洁之道

田维常

代码

电商后链路如何做好私域运营?

Linkflow

客户数据平台 CDP 客户画像

Spark 扫描 HDFS lzo/gz/orc异常压缩文件

kwang

大数据 spark hdfs

剖析JDK:强引用、软引用、弱引用、虚引用有何区别?

后台技术汇

28天写作

视频课程|Kube-OVN 入门与应用实战 (第1期)

York

灵雀云 Kubernetes k8s Kube-OVN

28 天写作营 Day 1--120%的技术人员体系

张老蔫

28天写作

区块链多币种钱包系统软件开发|区块链多币种钱包APP开发

系统开发

视频课程|Kube-OVN 入门与应用实战 (第4期)

York

灵雀云 Kubernetes k8s Kube-OVN

Spring Cloud(零)《总有一偏概述告诉你SpringCloud是什么》

小傅哥

小傅哥 springboot 28天写作

【架构中的物联网】影子机制

soolaugust

架构 物联网 28天写作

当我们谈论云原生网络时,Kube-OVN 究竟能带来什么?(下)|视频回顾

York

灵雀云 Kubernetes k8s Kube-OVN

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