软件本来不会如此糟糕,也不应该如此糟糕,但事实却是这样。其中一个原因在于开发程序的程序员、架构师和项目经理不能很好地理解他们的客户,而他们本该像其他行业的设计师一样必须了解自己的客户。软件公司的产品之所以糟糕,原因不在于开发人员不知道该怎样做好某一件事情,而是他们不知道要做些什么。他们脱离了自己的客户(某些客户应该被称为“牺牲品”),这些客户花钱购买软件,而且他们往往并不知道真相。软件开发人员往往解决了错误的问题,添加一些除了他们自己没有人会关心的功能,并在这个过程中伤害了所有的用户。如果他们理解谁是他们的用户,他们就可以做出不同的更好选择。
第1章 谁是傻瓜
■为什么到现在还是如此糟糕
每个程序员都认为自己完全了解用户想要什么。毕竟,他们整天都在使用计算机,而且每天都在使用,所以他们理应知道。他告诉自己,“如果我按照自己喜欢的风格设计用户界面,用户也一定会喜欢。”这是一个严重的错误!除非他的程序的用户是一个计算机技术天才,否则他的用户绝对不可能理解他。我要求上我讲授的计算机程序设计课程的学生将下面这两个短语铭记于心:认真了解用户,用户并不是您自己。
这是我在用户界面设计上的第一条、最后一条也是唯一的一条准则。
■用户不需要了解程序的工作原理
程序员在设计用户界面时所犯的第二个错误是,强迫用户理解他们的程序的内部工作机制。程序员不去调整用户界面适应用户的思维过程,而是强迫用户适应他的思维方式。
作为一名用户,我并不希望考虑程序本身。我希望考虑的是程序能够为我做的事情。用户被迫像程序员那样进行思考,即使用户并不从事也不想从事程序设计工作。用户本不应该如此。用户拿自己辛辛苦苦挣来的钱购买了这些软件产品。程序员的工作就应该调整以适应用户的思维习惯,而不是其他的方式。如确认机制被大量滥用,其结果非常具有讽刺意味:它变得完全没有用处。这个对话框不断扮演着“狼来了”的角色,就像伊索寓言中的牧羊童,没有人会注意到它。
■小结及应对措施
我们这些可怜的用户被摆在什么位置?现在总结一下我目前的观点:
(1)用户并不笨。用户界面确实糟糕,而它们本不该如此。
(2)它们之所以糟糕是因为它们是由程序员设计的,这些程序员并不明白一个道理:自己的用户并不是他们自身。
(3)由于第(2)条,他们很易将程序界面设计得非常复杂,并且他们期望用户也能够喜欢这样的界面,但是用户并不喜欢(参见第1条)
在每个软件项目的初期就让专家参与进来,这样可以设计出优秀得多的用户界面。普通的程序员在这方面往往做得很不够,甚至起到了负面的作用。必须要有一个人为那些沉默的大多数用户说话,这些用户并不关心技术本身,他们只希望完成自己的工作。