The following are nine heuristics listed in Nielsen (1993) and one (the last one) is from Nielsen and Mack (1994).
Visibility of System Status (可视化原则 )
Brief explanation of the heuristic. The computer should keep the user informed about what is going on; what input it, the computer, has received; what processing it is currently doing; and what the results of processing are.
计算机程序在运行过程中需要给用户详细的反馈,需要实时给出当前系统的处理状况,这在《Unix编程思想》中叫做“软件的透明性:来点光”。
Relationship to the information-processing model of a user. The computer has to supply information to the user through sight or sound; otherwise, the user will not have the information necessary to understand what is happening.
Match Between System and the Real World(和现实世界相结合 )
Brief explanation of the heuristic. The UI design should use concepts, language, and real-world conventions that are familiar to the user. This means that the developers need to understand the task the system is going to perform—from the point of view of the user . This also makes cultural issues relevant for the design of systems that are expected to be used globally.
Relationship to the information-processing model of a user. Familiar concepts, language, and real-world conventions in the interface can make use of knowledge already in a user’s long-term memory because of their experience with the task domain (independent of the computer).
软件系统的设计者在进行界面设计时,时时刻刻需要从用户的角度出发、以一个用户专家的身份来设计一个系统,可以称为“软件的紧凑性”,我在以前的文章简单提到过软件紧凑性的问题 。总之就是说,如果你是一个用户你觉得系统怎么用最简单、最高效的提高自己的工作效率,毕竟IT技术就是为了提高人们的工作效率。如果扬弃了这一点,你的系统可能就是一个简简单单的数据setter、getter、finder的叠加体了。
User Control and Freedom(用户具有自主控制系统的权力 )
Brief explanation of the heuristic. Allow the user to have control of the interaction. Users should be able to undo their actions easily, exit from any interaction quickly at any time, and not be forced into a series of actions controlled by the computer.
Relationship to the information-processing model of a user. Users will make errors, and, therefore, they will need easy ways to recover from them.
在设计系统时,需要能够让用户使用全程具有控制权,能够自主控制进度。
在这里,我就想起了以前写的一个上传下载控件类,当时那个控件一旦运行计算机CPU彪升到100%,用户体验就是系统死机。主要是当时在设计时完全从充分利用系统资源的角度,完全没有给用户反应时间。不但用户体验不好,就连自己做测试时有惊出了一声冷汗。
Consistency and Standards(系统的一致性原则 )
Brief explanation of the heuristic. Information that is the same should appear to be the same (same words, icons, and positions on the screen). Information that is different should be expressed differently . This consistency should be maintained within a single application and within a platform. Developers therefore need to know platform conventions.
Relationship to the information-processing model of a user. As with the Match Between System and the Real World heuristic, this heuristic makes use of a user’s prior knowledge and experience with other parts of the same application as well as with other applications on the same platform.
就是说系统在接收信息或是反馈信息的时候(界面也是信息反馈的一个途径),需要前后一致,让用户有最少的以外感觉。这其实和我们平时写文档、写报告是一样的,我们通篇的字体需要一致(这个一致是指文章各个部分分别:正文一致、标题一致、目录一致、页脚页眉一致等等)。
Error Prevention(预防用户出错 )
Brief explanation of the heuristic. As much as possible, prevent errors from happening in the first place. For instance, if there are a limited number of legal actions at some point in the application, then help users select from among these legal actions—rather than allowing them to perform any action and telling them after the fact when they've made an error. This could be considered a subset of the first heuristic, visibility of system status (what input the computer system is ready to accept), but it is so important and so often violated that it warrants its own heuristic.
Relationship to the information-processing model of a user. Errors can come about because users make mistakes in perception, lack knowledge about what to do next, recall the gist of a command rather than the exact details, or slip when they type or point. Some of these mistakes can be prevented by showing only those actions that are acceptable at that particular point in an interaction (e.g., graying out inappropriate buttons) or caught as soon as the user performs them (e.g., not accepting an incorrect abbreviation of a US state in an address form).
这个好像是软件工程需要着重考虑的问题,在WEB开始时一个典型的例子就是表单验证了。
Recognition Rather Than Recall(系统需要有足够的提示信息让用户第一时间获得需要的信息 )
Brief explanation of the heuristic. Show all objects and actions available to the user. Do not require them to remember information from one screen of the application to another.
Relationship to the information-processing model of a user. This heuristic is a direct application of theories of human memory. It is much easier for someone to recognize that they know what to do if there are cues in the environment coming into working memory through perception as well as knowledge in long-term memory of what to do.
在很多软件中,都有典型的下一步下一步的工作模式,在这个时候就可能存在一个信息传递的问题。可能前面说填写的信息在后面需要继续指导用户,这时候不应该是让用户自己记忆信息而是应该由系统主动给出信息。例如:在安装软件时,我们一步一步配置安装信息,在最后一步确认配置时应该给出前面信息的综合信息以对用户起提示作用。
Flexibility and Efficiency of Use(提供灵活高效的使用方式 )
Brief explanation of the heuristic. The design should have accelerators (keyboard shortcuts) to allow skilled users to speed up their interaction (as opposed to always using menus or icons with the mouse). Skilled users should also be able to tailor their interface to speed up frequent actions.
Relationship to the information-processing model of a user. The value of accelerators comes primarily from the motor processes of the user. Typing single keys is typically faster than continually switching the hand between the keyboard and the mouse and pointing to things on the screen. Furthermore, skilled users will develop plans of action, which they will want to execute frequently, so tailoring can capture these plans in the interface itself.
这一点就是要求系统能给出操作上的优良途径,方便专家用户在定制操作后提高使用效率。
Aesthetics and Minimalist Design(提高系统的易读性 )
Brief explanation of the heuristic. Eliminate irrelevant screen clutter.
Relationship to the information-processing model of a user. This heuristic relates to the visual search aspect of perception and also to memory. The more clutter, the more information the eyes must search through to find the desired information. In addition, the more information coming in through perception as the visual search proceeds, the more this information interferes with the retrieval from long-term memory of the information that is actually relevant to the task at hand.
系统易读性最好的一个例子应该是当初Google的成功了。它简单明了,直接给出用户需要做的事情。在这个世纪,我们已经面临信息爆炸,更希望一致直截了当的信息。
Help Users Recognize, Diagnose, and Recover from Errors(给用户足够的错误提示信息,以帮助用户从错误中恢复 )
Brief explanation of the heuristic. Error messages should be written in plain language, tell the user what the problem is, and give constructive advice about how to recover from the error. Again, this could be considered a subset of the first heuristic, visibility of system status , but it is so important and so often violated that it warrants its own heuristic.
Relationship to the information-processing model of a user. This is simply an admonition to give the user sufficient information to understand the situation.
至于这个的典型例子,我比较喜欢Java的异常流模式,特别方便程序员定位错误。对于广大用户来说,平时使用时弹出的错误提示框中的详细信息就是一个这样的应用体现。微软的错误提示做的很详细(一般都是给出下一步下一步的选择),不过一般结果很遗憾总是在点了无数次下一步后又回到了起点。
Help and Documentation(给出必要的文档和说明帮助 )
Brief explanation of the heuristic. If the system is not an extremely simple, walk-up-and-use application, it is going to need help and documentation. This should be always available, easily searchable, and give concrete advice applicable to users’ tasks.
Relationship to the information-processing model of a user. This is again an admonition to give the user sufficient information to understand the application. The search feature should allow information to be found by asking for the gist of the meaning, rather than only the exactly right keyword, because people will remember only the gist, not the exact words (if they ever knew them).
这个不但要给用户,也要给我们广大的程序员。