zoukankan      html  css  js  c++  java
  • 程序员是“逻辑人”

    据我观察,在软件开发者身上的所有“坏毛病”中,最严重的可能是:我们自以为是典型用户。我们对电脑如痴如醉;我们对它的工作原理了解甚多;我们甚至建议亲朋好友应该如何使用电脑。我们是专家!谁还能比我们这样的超级用户设计出更好的软件呢?然而,大部分开发者没有意识到的是,我们其实是异类。我们绝非等闲之辈——我们是边缘人。我常常告诫项目经理:如果你让我设计软件,你的项目就麻烦了。

    在《交互设计之路——让高科技产品回归人性》一书中,Alan Cooper也谈到了这种现象,并提出了“逻辑人”(Homo Logicus)的概念:

    逻辑人渴望控制那些让他们感兴趣的东西,而那些让他们感兴趣的都是些复杂的确定性系统。人是复杂的,但他们不像机器,他们的行为不具有逻辑性和可预见性。最好的机器是数字的,因为这样它就能变得最为复杂、精细,并且能被程序员轻易改变。

    获取控制的代价总是更多的努力和更高的复杂度。大部分人愿意适度地努力,但程序员有别于大部分人之处在于,他们更愿意而且有能力掌控极度的复杂。对于程序员来说,他们的工作满意度部分来自于了解并管理由很多相互作用的部件组成的系统。驾驶飞机是程序员的典型爱好。飞机驾驶舱的控制面板上堆满了仪表、把手和控制杆,但程序员一点都不怕那些令人生畏的复杂玩意儿。逻辑人觉得它很有趣,激动得按捺不住,尽管他们需要严谨地学上几个月(他们恰恰因此乐在其中!)。而现代智人(Homo Sapiens)更愿意只是作为乘客乘坐飞机。

    对于逻辑人来说,控制是他们的目标,而复杂是他们愿意为之付出的代价。对于普通人来说,简单是他们的目标,失去控制权是他们愿意付出的代价。在以软件为基础的产品中,控制演变成了功能特性。例如,Windows 95的“查找文件”功能对搜索过程赋予了用户很多控制。用户可以指定搜索磁盘的哪个区域、想搜的目标文件类型、通过文件名来搜还是通过文件内容来搜,以及其他的几个参数。从程序员的角度来看,这个特性非常酷。经过一些预先的尝试和理解,他们可以使搜索过程更快、更有效。与之相反的是,普通用户并不觉得这有多好,因为他们必须指定搜索区域、目标文件类型以及是否按文件名搜还是按内容搜。如果不必了解搜索的工作原理,现代智人更愿意牺牲一点让计算机额外工作的时间。对他们来说,每个搜索参数的输入都可能让他们犯错,尽管灵活性增加了,但搜索失败的可能性也会更高。他们宁可牺牲所有不必要的复杂、控制和认知,以让他们想做的事情更容易做好。

    逻辑人被一种对工作原理难以抵抗的认知欲望驱使着。相比之下,现代智人强烈渴望的是成功。尽管程序员也想成功,但他们愿意接受经常的失败来作为认知的代价。为了更好地理解这一点,我们来看一个关于工程师的经典笑话:

    有三个人将被依次执行死刑,他们中的一个是牧师,一个是律师,还有一个是工程师。牧师第一个被推向绞刑架。侩子手拉动控制杆以抽出活板,但它失灵了。牧师宣称这是上帝的旨意,要求得到释放。于是他获得了自由。接着,律师走向了绞刑架。侩子手再一次拉动了控制杆,但它仍然失灵。律师同样要求获得释放,因为他不能因为同一罪状被判两次死刑。于是他也获得了自由。最后,轮到工程师了。他上去对脚手架仔细检查了一遍,在侩子手还没动手之前,他抬起头大声说,“啊哈,是这里出了故障!”

    Alan Cooper接着列举了逻辑人的更多特征:

    • 不惜牺牲简单以换取控制;
    • 不惜失败以换取认知;
    • 不放过任何一点可能性;
    • 行为像体育特长生。

    可怜一下用户吧!他们只不过是一些现代智人;他们对计算机或复杂度不感兴趣;他们只是想做好他们想做的事情。

    任何人都能做出来一个没人会用的复杂软件。这其实并不难!把软件做得容易使用才是需要真本事的!我不确信你是否需要请那些要价不菲的交互设计师来达成这个目标,但你必须停止像逻辑人一样思考——而应该学会像现代智人那样思考!

  • 相关阅读:
    UML之对象图
    android5.0(Lollipop) BLE Peripheral牛刀小试
    自己定义msi安装包的运行过程
    高速排序
    字符串函数---strcat()与strncat具体解释及实现
    杭电(hdu)1181 变形课
    电脑突然死机,编译报错dll缺少依赖项
    谈谈java垃圾回收机制
    swift(2)元祖(Tuple)
    IOS小工具以及精彩的博客
  • 原文地址:https://www.cnblogs.com/pangblog/p/3398016.html
Copyright © 2011-2022 走看看