我们应该将软件设计成像一位好的工作伙伴。

一款首先软件应该“有礼貌”,因为礼貌是人类共有的行为特征。

如果一款软件只能够提供很少信息,行为很晦涩,经常强迫使用者自己去寻找一些常用功能,而且将自己设计过程当中的过错和责任强加给任何使用者,那么使用者不会喜欢这个软件,得到的体验也十分的不愉快。而如果交互的过程体现出了系统对人尊重、宽厚、富有帮助,使用者就会喜欢这个软件,因为操作过程让他拥有了愉快的体验。

重复一下,这与操作界面的构成没有关系;即便是黑白屏幕的命令行操作界面,人们也会喜欢的,只要软件能满足上面几点。

礼貌软件应该能够主动地为大家提供一些必要的提示或者是帮助。

大多数软件只会单纯地回答我问到的问题。它们不会主动向我提供其他的信息,即使有些信息明显与我的目标有关。

我让我的字处理软件打印文档时,它从不告诉我纸张不足,或者有40份文档在我的前面等待打印,而人却可以做到这一点。

的确,电脑绝对不会给出一个大约的银行存款数额。但是用十分之一秒告诉你银行存款是“大约500美元”,或者用17分钟告诉你银行存款是“正好503.47美元”(早期的银行系统),对电脑来讲没有什么不同。而一个有礼貌、更人性化的软件会立即告诉你银行存款“大约500美元”,然后告诉你将在几分钟后给出更准确的数据。

作为操作者的你可以选择是否再花一些时间得到更准确的数据。这就是对等付出原理,如果你需要更多的信息,你会认同应该花费更多的时间。

礼貌的软件应该拥有一定的常识。

大多数软件都将一些常用功能的按钮放在了从不使用的按钮的旁边。

大家也经常会发现,简单、常用的功能按钮却放在了危险的、专业的、不能撤销的座椅弹射式按钮旁边。这就像把你的餐桌安排在烤炉旁边一样。

礼貌的软件会预知我的需要。

在阅读网页时,我的浏览器基本上什么也不做。它明明可以很容易预期我的需要,做一些准备工作,而不是静静地浪费时间。

为什么它不利用空闲时间将那些画面中有链接的网页提前下载呢?我去阅读那些网页的可能性很大呀。

中断一个不想要的请求很容易,但是打开一个网页往往很花时间。如果浏览器能够预期我的需要而在空闲时间提前下载相关网页,它的响应性会更好,也不需要更快的网络连接速度。

礼貌的软件总是能够解决自己的问题。


软件总是要求确认的对话框向我发出抱怨,用不必要的状态条向我炫耀。

我不想也不需要知道电脑工作得多么辛苦。就像我不想知道有关酒吧老板离婚,美容师的车出了故障,医生的抚养费这些消息一样。

软件不仅应该对自己的问题保持沉默,它应该有自信和能力去解决它自己的问题。

编写礼貌软件并不比编写不礼貌软件难。我们需要有人设计能够模拟对朋友敏感和关爱的交互行为。

让行为更接近人是最切合实际的。 所有的礼貌特性都和其他更明显的商业处理的实际目标没有矛盾。

时间: 2024-08-11 00:55:54

我们应该将软件设计成像一位好的工作伙伴。的相关文章

软件设计

软件设计 一定是创建订单的时候填充market字段,我曾经一度打算在回调的时候再根据回调方来填充Market,但是如果没有回调呢?Market这样的标志性字段一定要依赖于靠谱的操作: 对于重载方法要注意,尤其套调用的重载方法,对于某些核心校验必须要放置在里层方法调用,否则因为重载都是public出去的,都可以被外界调用,如果在外层方法实现校验,里层重载方法被外界直接调用,校验会被跳过:考虑CheckMarket是放在CreateOrder(String encryptedString)还是Cre

第五届蓝桥杯全国软件设计大赛--2013年校内选拔赛Java题目

第五届蓝桥杯全国软件设计大赛 2013年校内选拔赛Java题目 一.考生注意: (1)[结果填空题]要求参赛选手根据题目描述直接填写结果.求解方式不限.不要求源代码. 把答案存入[考生文件夹]下对应题号的文件中即可. (2)[代码填空题]要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确.完整.所填写的代码不超过一条语句(即中间不能出现分号). 把填空的答案(仅填空处的答案,不包括题面已存在的代码)存入[考生文件夹]下对应题号的文件中中即可. (3)[编程题]要求选手设计

智能家居系统-软件设计

1 智能家居远程控制系统的软件实现 1.1 基于uC/OS-II的中央控制器的软件设计 1.1.1 uC/OS-II系统移植 本设计使用uC/OS-II操作系统,uC/OS-II是一个源码公开.可移植.可固化.可剪裁和抢占式的实时多任务操作系统,uC/OS-II的大部分源码是用标准ANSI C编写,并且编程规范,可读性很高,内核中只有少量的与硬件相关的代码使用汇编语言编写,总共200余行,移植非常方便[37].uC/OS-II软件体系结构如图5-1所示.移植工作主要包括以下几个方面的内容: 1)

面向对象软件设计原则

提起面向对象,大家也许觉得自己已经非常“精通”了,起码也到了“灵活运用”的境界.面向对象设计不就是OOD吗?不就是用C++.Java.Smalltalk等面向对象语言写程序吗?不就是封装+继承+多态吗? 很好!大家已经掌握了不少对面向对象设计的基本要素:开发语言.基本概念.机制.Java是一种纯面向对象语言,是不是用Java写程序就等于面向对象了呢?我先列举一下面向对象设计的11个原则,测试一下大家对面向对象设计的理解程度-^_^- 单一职责原则(The Single Responsibilit

极客时间-左耳听风-程序员攻略-软件设计

程序员练级攻略:软件设计 编程范式 学习编程范式可以让你明白编程的本质和各种语言的编程方式.因此,我推荐以下一些资料,以帮助你系统化地学习和理解. 极客时间的<编程范式游记>系列文章,目录如下. 编程范式游记(1)- 起源 编程范式游记(2)- 泛型编程 编程范式游记(3)- 类型系统和泛型的本质 编程范式游记(4)- 函数式编程 编程范式游记(5)- 修饰器模式 编程范式游记(6)- 面向对象编程 编程范式游记(7)- 基于原型的编程范式 编程范式游记(8)- Go 语言的委托模式 编程范式

硬件工程师需要知道的8个软件设计技巧

嵌入式系统设计不仅要了解硬件还应该了解它与软件之间的相互影响和作用.硬件设计需要一定的设计范例,这点对于软件设计却不那么适用.如何从单纯的硬件设计过渡到硬软结合的设计,在你着手开发软件时需注意以下八个软件设计技巧. ??1.设计控制流程图 ? ? ? ??工程师进行到开发软件这一步时会情不自禁地开始书写代码.这种思维定势就像在原理图还未完成之前就开始尝试画PCB.当着手开发软件时,克制写代码的冲动,取而代之的应该是软件流程结构图表的设计,这点非常重要.流程图能清晰地呈现给开发人员软件的各个需要的

软件设计与实现总结

本周学习了<软件设计与实现>的章节,了解了一些常用的分析和设计方法和开发阶段的一些管理方法: 1.分析和设计方法: 写软件就是为了解决用户的需求,所以我们首先了解用户需求即需求分析. 方法:(1)以文字为主的文档(2)以图形为主的构造模型(3)数学语言(4)类+代码(5)源代码+注释 2.从Spec到实现 (1)估计开发任务所需时间(2)分析需求(3)生成设计文档(4)和同事审核文档(5)编写代码(6)代码复审,代码重构 3.开发人员的标准工作流程(附图片) BTV测试又称冒烟测试 4.开发阶

软件设计原则和方法通俗理解

网上有很多关于软件设计原则的说法,很精确,很官方,但是对于有些初学者来说可能是不知所云,到最后把自己给郁闷到了,学习软件应该是一件愉快的事情. 那么软件设计原则有哪些呢? (1)可靠性 做出一个可靠的软件,跟女人找一个可靠的男人一样,女人找男人,需要男人品质好,人品好,靠谱,可信赖,可依靠,身材高大,等等.软件设计也是一样,在软件的设计阶段就要非常注意软件的可靠性,不要等到最后用的时候发现软件这里不行那里不行,或者说在使用软件过程中一旦发现问题还是可以恢复使用,不能直接崩溃. (2)健壮性 这个

《新浪微博自动评论软件&#183;设计与实现之UI篇》

任务:编写用户界面 使用Python中的wxPython对界面进行编写工作 预计的按钮有:登录,评论,退出 预计的输入框有:cookie.评论内容.搜索关键字 预计的单选框有:是否使用关键字搜索 首先,看看我们需要的控件都有哪些,按钮(Button).单选按钮(RadioButton).静态文本(StaticText).可编辑文本(TextCtrl),到WxPythonInAction查看对应的文档,要注意到的是,wxPython和之前玩的MFC不一样,不是先设计界面,再编写代码,而是所有控件的