windows:Principles/powerful-and-simple
出自UXGuide.net
简约而又强大
Powerful and Simple
(注:本文的部分翻译基于 Alan Cai 的贡献。)
目录 |
强大:
简约而又强大:
理想的基于 Windows Vista® 应用程序应当是既简约又强大的。你当然希望你的程序功能强大,你也当然希望它简单易用,但鱼和熊掌如何兼得?这两者之间天生存在着矛盾,但这种矛盾并非无法调和。通过仔细平衡各种功能的选用和呈现,你能够同时实现两个目标。
强大
在软件中,“强大”究竟意味着什么?一个塞满了各种特性、拥有种类与数量惊人的功能、试图让所有人都满意的程序也许可以算的上是强大的。这种设计大概不会成功,因为这些没有目标的功能特性很难满足任何人的需要。这不是我们下面要说的那种强大。
当应用程序具有下列这些特征时,即可以称为强大:
- 可用。该应用程序能够满足目标用户的需要,让他们能够完成那些无法以其他方式完成的任务,有效地达成目标。
- 高效。该应用程序能够使用户以前所未有的工作效率和规模水平来完成任务。
- 通用。该应用程序能够使用户在多变的环境下高效地完成较大范围内的任务。
- 直接。该应用程序像是能够直接帮助用户达到他们的目标,而不是碍手碍脚或是有不必要的步骤。类似快捷方式、键盘快捷键以及宏之类的特性都有助于提高直接感。
- 灵活。该应用程序能够让用户完全、细致地控制他们的工作。
- 集成。该应用程序很好地与 Microsoft® Windows® 集成,并能够与其他应用程序交换数据。
- 高级。该应用程序具有非常特别的、创新性的、start-of-the-art、在其竞争产品中没有的功能。
有些特征取决于用户的观念,并与用户此时的能力相关。什么能称为强大会随着时间而改变,今天的高级搜索功能到了明天也许就只是很普通的东西了。
所有这些特征都可以被归纳到我们对强大的定义中:
当一个应用程序使其目标用户能够充分有效地发挥他们的潜力时,即称为强大。
因此,衡量强大的根本标准是生产效率,而不是功能的数量。
不同的用户需要以不同的方式帮助他们发挥全部潜力。对一些用户有效的东西也许在其他用户那边会损害用途的广泛性、直接性及操控性。设计良好的软件必须在这些特点中找到适当的平衡点。例如,一个为非专业人士设计的桌面出版系统可以使用向导来一步步帮助用户完成复杂的任务。这种向导让目标用户能够完成他们以其他方式无法完成的任务。相反,用于专业人士的桌面出版系统则应当更注重直接性、有效性及完全控制。对于这种应用程序的用户来说,向导反而会缚手缚脚或是令人厌烦。
最重要的一件事:
理解你目标用户的目的,并挑选那些能够高效实现他们目标的功能特性。
简约
We define simplicity as follows:
如下是我们给简约的定义:
Simplicity is the reduction or elimination of an attribute of a design that target users are aware of and consider unessential.
简约就是减少或者消除那些目标用户认为不重要的(非本质的)设计属性。
In practice, simplicity is achieved by selecting the right feature set and presenting the features in the right way. This reduces the unessential, both real and perceived.
在实际工作中,简约就是选择合适的功能集并以合适的方式呈现。这样就能减少那些不重要的功能。
Simplicity is dependent upon the perception of users. Consider how the effect of an automatic transmission depends on a user's perspective:
简约根据用户的需求而定。接下来我们探讨一下自动变速器的功用是如何取决于用户的需求。
- For the typical driver (the target user), an automatic transmission eliminates the
need for a manual gear shift and clutch, making a car much easier to drive. A manual gear shift and clutch are not essential to the task of driving, so they are removed to achieve simplicity.
- 对于一个典型的驾驶员(目标用户),自动变速器免除了手动变速杆和离合器,使车更容易驾驶。所以手动变速杆和离合器对驾驶而言是不必要的,我们可以删掉该装置以达到简约。
- For a professional race car driver, having direct control over the transmission
is essential to being competitive. An automatic transmission negatively affects the car's performance, so it is not regarded as resulting in simplicity.
- 对于一个职业赛车手,在赛场上对变速的直接控制是必不可少的。自动档将给汽车的性能造成负面影响,所以采用自动变速器就不认为是简约了。
- For a mechanic, an automatic transmission is a more complex mechanism, and therefore
isn't easier to repair or maintain than a manual transmission. Unlike the mechanic, the target user is blissfully unaware of this internal complexity.
- 对于汽车修理工而言,自动变速器构造比较复杂,比手动变速装置要难修理一些。但与修理工不同,目标用户并不知道这些内部的复杂性。
While different users regard the automatic transmission differently, it's successful because it eliminates the need for unessential knowledge, skill, and effort from its target users. For the typical driver, automatic transmission is a great feature because it just works.
不同的目标用户对自动变速器的看法是不一样的,自动变速器的成功在于它能消除那些不必要的驾驶知识和技巧以及为了学会驾驶所付出的努力。对于一个典型的驾驶员而言,自动变速器是一个非常棒的功能,因为它能很好的让人驾驶。
简约 vs. 易用性
Simplicity, when correctly applied, results in ease of use. But simplicity and ease of use are not the same concepts. Ease of use is achieved when users can perform a task successfully on their own without difficulty or confusion within a suitable amount of time. There are many ways to achieve ease of use, and simplicity—the reduction of the unessential—is just one of them.
如果使用恰当,简约可以导致易用性。但简约和易用性是两个不同的概念,易用性是指用户在适量的时间内单独一人成功地完成了任务,期间没有遇到什么困难或困惑。有很多种方法可以实现易用性,但简约(也就是剔除不必要功能)只是其中的一种方式。
All users, no matter how sophisticated, want to get their work done with a minimum amount of unnecessary effort. All users—even advanced users—are primarily motivated to get their work done, not to learn about computers or your application.
对于所用的用户(不论他是否经验丰富),他们都希望花费最少的努力来完成它们的工作。对于所有用户(不论他是否是高级用户),他们只是希望通过计算机或应用程序来完成他们的工作,而不是花费时间来学计算机或者应用程序的操作。
Simplicity is the most effective way to achieve ease of use, and ease of use equals use. Complex, hard-to-use features just don't get used. By contrast, simple, elegant designs that perform their function well are a joy to use. They invoke a positive, emotional response.
简约是实现易用性的一个最有效的方法,易用性等同于用途(使用性)。人们不乐于去使用复杂的难以使用的特性,相比之下,简约的优雅的设计能很好的发挥其功能,使用户能充满乐趣地使用。它激发了一个积极的情绪反应。
For example, consider the wireless networking support in Microsoft Windows XP. Microsoft could have added a wizard to walk users through the configuration process. This approach would have resulted in ease of use but not simplicity, because an unessential feature (the wizard) would have been added. Instead, Microsoft designed wireless networking to configure itself automatically. Users ultimately don't care about the configuration details, so long as it "just works" reliably and securely. This combination of power and simplicity in wireless networking technology has led to its popularity and rapid adoption.
例如,我们来看一下XP系统中对无线网络的支持。微软本可以通过添加一个向导来引导用户完成配置过程,这种方式能增强易用性,但并不简约。因为向导对任务本身而言是不必要的。与之相反的是,微软通过自动识别来配置无线网络,对于用户而言,他们并不关心配置细节,只是要知道无线网络在安全可靠地运行即可。这种强大而简约的无线网络技术促使了其迅速的普及和广泛应用。
如果你只做一件事情……
Start your design process with the simplest designs that do the job well.
启动你的简约设计的设计过程吧。
If you're not satisfied with your current design, start by stripping away all the unessential elements. You will find that what remains is usually quite good.
如果你对当前的设计不是很满意,那就从剔除那些不必要的元素开始,你会发现剩下来的通常都是相当不错的。
Obtaining simplicity while maintaining power 强大着并简约着
设计原则
To obtain simplicity, always design for the probable, not the possible.
为了达到简约,总是要为那些使用概率大的功能而设计,而不是那些不怎么使用的功能。
The possible
Design decisions based on what's possible lead to complex user interfaces like the Registry Editor, where all actions are equally possible and as a result require equal effort. Since anything can happen, user goals aren't considered in design decisions.
基于太小的可能性的设计决策将导致复杂的用户界面。如注册表编辑器,所有的操作都是同等的可能。因此不考虑用户目标的设计决策将什么糟糕的事请都可能发生。
The probable
Design decisions based on the probable lead to simplified, goal- and task-based solutions, where the likely scenarios receive focus and require minimal effort to perform.
基于更大可能性的设计决策将会导致简约,以目标和任务为基础的解决方案,将最有可能付出最少的努力执行。
简约设计原则
To obtain simplicity, focus on what is likely; reduce, hide, or remove what is unlikely; and eliminate what is impossible. 为了获得简约,重点在于什么是可能的(指可能性在八九十的),减少、隐藏或剔除那些不可能的,剔除那些完全不可能的。
What users will do is far more relevant to design than what they might do.
用户经常使用的功能比那些不怎么使用的功能与设计更加相关。
设计技术
To obtain simplicity while maintaining power, choose the right set of features, locate the features in the right places, and reduce the effort to use them. This section gives some common techniques to achieve these goals.
在保持强大的同时获得简约,选择合适的功能集,并将其放置合适的位置,减少使用它们而付出的努力(易学性),这一章节将介绍一些实现这些目标的常见技术。
Choosing the right feature set
选择合适的功能集
"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." —Antoine de Saint-Exupery 完美的境界不在于没有东西可以加了,而是在于没有东西可以减了。 ──安东尼·圣·艾修伯里
The following design techniques give your users the features they need while achieving simplicity through actual reduction or removal:
以下的一些设计技术将告诉你,如何通过减少或剔除来实现简约从而给用户提供所需要的功能。
- Determine the features your users need. Understand your users' needs through
goal, scenario, and task analysis. Determine a set of features that realizes these objectives.
- 确定用户需要的功能。通过目标、情境和任务分析来了解用户需求,确定实现这些目标的功能集。
- Remove unnecessary elements. Remove elements that aren't likely to be used
or have preferable alternatives.
- 删除不必要的元素。删除那些不太可能使用的或者是有另外较好的替代品的元素。
- Remove unnecessary redundancy. There might be several effective ways to perform
a task. To achieve simplicity, make the hard decision and choose the best one for your target users instead of providing all of them and making the choice an option.
- 删除那些过多的方式。可能完成任务有多种不同的方式。为了实现简约,应该做一个艰难的抉择,只保留一种最适合目标用户的方式。而不是将所有方式罗列出来,提供可供选择的选项。
- Make it "just work" automatically. The element is necessary, but any user
interaction to get it to work is not because there is an acceptable default behavior or configuration. To achieve simplicity, make it work automatically and either hide it from the user completely or reduce its exposure significantly.
- 让产品自动工作。该元素是必不可少的,但是用户只是使用其来完成工作而不是为了去了解它的运行或配置。所以为了实现简约,我们应该让其自动工作,将其隐藏在用户的视线以外,大大减少风险。
精简表达方式 Streamlining the presentation
"The ability to simplify means to eliminate the unnecessary so that the necessary may speak." —Hans Hofmann 简约化在于消除了不必要的,那么必要的就被突出来了。 ──汉斯·霍夫曼
Use the following design techniques to preserve power, while achieving simplicity through the perception of reduction or removal:
以下的一些设计技术将告诉你,如何通过减少或剔除来实现简约,同时保持强大。
- Combine what should be combined. Put the essential features that support
a task together so that a task can be performed in one place. The task's steps should have a unified, streamlined flow. Break down complex tasks into a set of easy, clear steps, so that "one" place might consist of several UI surfaces, such as a wizard.
- 结合那些应该结合的。将支持同一任务的必要特性放置在一起,这样可在同一地方执行任务。任务的步骤应该是统一的、简化的流程。将复杂的任务分解为一系列的简单明了的步骤,这样一个位置可能包含了好几个用户界面,例如向导。
- Separate what should be separated. Not everything can be presented in one
place, so always have clear, well-chosen boundaries. Make features that support core scenarios central and obvious, and hide optional functionality or make it peripheral. Separate individual tasks and provide links to related tasks. For example, tasks related to manipulating photos should be clearly separated from tasks related to managing collections of photos, but they should be readily accessible from each other.
- 分离那些应该分离的。并不是什么都可以呈现在一个地方,所有总是会有一些明确的、精心选择的边界。将支持中心情境的功能放置在中心、显而易见的位置,并将次要的功能隐藏或者放置在外围。例如,与处理照片相关的任务应该和与照片收藏管理任务相分离,但它们之间应该留有链接以便于容易相互访问。
- Eliminate what can be eliminated. Take a printout of your design and highlight
the elements used to perform the most important tasks. Even highlight the individual words in the UI text that communicate useful information. Now review what isn't highlighted and consider removing it from the design. If you remove the item, would anything bad happen? If not, remove it!
- 剔除可以剔除的。将你的设计打印出来,然后标出用来执行最重要任务的元素,甚至标出传达有用信息的用户界面文本的单个词语。现在回顾一下,将那些没有标出的剔除掉。看剔除后,有没有出现什么不好的后果呢?如果没有,那就剔除吧!
- Consistency, configurability, and generalization are often desirable qualities,
but they can lead to unnecessary complexity. Review your design for misguided efforts in consistency (such as having redundant text), generalization (such as having any number of time zones when two is sufficient), and configurability (such as options that users aren't likely to change), and eliminate what can be eliminated.
- 一致性、可配置性和通用化往往是可取的优点,但是它们也会导致不必要的复杂性。我们来回顾一下一致性(例如有多余的文字)、通用化(例如呈现了所有时区选择,其实只要两个就够了)和可配置性(例如某些用户不太可能改变的选项设置)的一些误导,然后剔除那些可以剔除的。
- Put the elements in the right place. Within a window, an element's location
should follow its utility. Essential controls, instructions, and explanations should all be in context in logical order. If more options are needed, expose them in context by clicking a chevron or similar mechanism; if more information is needed, display an infotip on mouse hover. Place less important tasks, options, and Help information outside the main flow in a separate window or page. The technique of displaying additional detail as needed is called progressive disclosure.
- 将元素放置在适当的位置。在一个窗口中,一个元素的位置应该根据它的效用来定。标准控件、解释和说明都应该按照逻辑的次序放置。如果需要的选项较多,则可以通过旋转三角形(可折叠树)或类似的控件来呈现。如果需要的信息较多,则可以通过鼠标悬停的信息提示方式来呈现。将不太重要的任务、选项和帮助信息放置在主要任务流的外围的分离的窗口或页面。这种更多的额外细节信息的呈现技术称之为“渐进展开”。
- Use meaningful high-level combinations. It is often simpler and more scalable
to select and manipulate groups of related elements than individual elements. Examples of high-level combinations include folders, themes, styles, and user groups. Such combinations often map to a user goal or intention that isn't apparent from the individual elements. For example, the intention behind the High Contrast Black color scheme is far more apparent than that of a black window background.
- 使用有意义的上一层级的组合。选择和操作一组相关的元素比单个元素往往更加简单和具有扩展性。上一层级的组合包括了文件夹、主体、样式和用户群体。这样的组合通常能映射用户目标和意图,而这些是单个元素所无法做到的。例如,黑色高对比度配色方案的意图要远远明显于一个黑色窗口背景。
- Select the right controls. Design elements are embodied by the controls you
use to represent them, so selecting the right control is crucial to efficient presentation. For example, the font selection box used by Microsoft Word shows both a preview of the font as well as the most recently used fonts. Similarly, the way Word shows potential spelling and grammar errors in place is much simpler than the dialog box alternative, as shown in the beginning of this article.
- 选择合适的控件。设计元素是通过你所使用的控件来表达它们的,所以选择正确的控件是至关重要的。例如,字体选择框是微软Word用来显示所有文字以及最近使用文字的预览。同样的,微软Word用来显示拼写和语法错误的方式比对话框更加简单,正如本文开头所示。
减少努力 Reducing effort
"Simple things should be simple. Complex things should be possible."—Alan Kay 简单的事情应该是简单的,复杂的事情应该是可行的。 ──阿伦·凯
The following design techniques result in reduced effort for users:
下面的这些设计技术将为用户减少努力:
- Make tasks discoverable and visible. All tasks, but especially frequent tasks,
should be readily discoverable within the user interface. The steps required to perform tasks should be visible and should not rely on memorization.
- 使任务清晰可见。所有的任务,特别是使用频繁的任务,应该在用户界面中显而易见。并且完成任务的每一步骤都是清晰可见,不需要靠记忆来完成。
- Present tasks in the user's domain. Complex software requires users to map
their problems to the technology. Simple software does that mapping for them by presenting what is natural. For example, a red-eye reduction feature maps directly to the problem space and doesn't require users to think in terms of details like hues and gradients.
- 当前任务放置在用户的主要区域。复杂的软件要求用户去思考问题的技术层面。简单的软件只是呈现给用户最自然的,例如,防红眼功能直接映射问题本身,而不是要求用户去思考渐变和色调等细节方面的问题。
- Put domain knowledge into the program. Users shouldn't be required to access
external information to use your application successfully. Domain knowledge can range from complex data and algorithms to simply making it clear what type of input is valid.
- 将专业领域知识放置在程序中。应用程序不应该要求用户访问外部信息才能使程序正常运行,专业领域知识可以将复杂数据和算法变成简单清晰有效的输入方式。
- Use text that users understand. Well-crafted text is crucial to effective
communication with users. Use concepts and terms familiar to your users. Fully explain what is being asked in plain language so that users can make intelligent, informed decisions.
- 使用用户能理解的文本。在用户与软件的交互过程中,精心设计的文本时至关重要的。使用用户熟悉的概念和术语。用通俗易懂的语言充分解释来帮助用户做出明智的决策。
- Use safe, secure, probable defaults. If a setting has a value that applies
to most users in most circumstances, and that setting is both safe and secure, use it as the default value. Make users specify values only when necessary.
- 使用安全可靠的默认值。如果某设置在大多数情况下适用于大多数用户,并且该设置安全可靠,我们就可以将其作为默认设置,并且在必要的使用用户可以自行更改。
- Use constraints. If there are many ways to perform a task, but only some
are correct, constrain the task to those correct ways. Users should not be allowed to make readily preventable mistakes.
- 使用限制。如果完成某任务有很多种方式,但是只有一些是正确的,这样就限制了选择正确方式的概率。不应该让用户犯那些很容易被预防的错误。
简约并不意味着简单 Simplicity does not mean simplistic
"Everything should be made as simple as possible, but not simpler."—Albert Einstein 任何事不是更简单就行,而是要尽可能最简单。 ──阿尔伯特·爱因斯坦
We believe that simplicity is crucial to an effective, desirable user experience—but it is always possible to take a good thing too far. The essence of simplicity is the reduction or elimination of the unessential. Removal of the essential just produces a poor design. If your "simplification" results in users becoming frustrated, confused, unconfident, or unable to complete tasks successfully, you have removed too much.
我们认为简约对有效的好的用户体验是至关重要的,但是往往有时候过犹不及。简约的本质是要减少或剔除不必要的东西,但是如果你的简约化导致了用户变得沮丧、困惑和不信任,或者不能正常完成任务,那说明你剔除得太多了。
简约并不意味着需要更多的努力 Simplicity does mean more effort for you
"I have only made this letter longer because I have not the time to make it shorter."—Blaise Pascal 我把这封信写得有点长,只因我没时间把它弄短些。 ──布莱斯·帕斯卡
Obtaining simplicity while preserving power often requires significant internal complexity. It is usually easier to design software that exposes all the technology plumbing than to design one that hides it—the latter requires an excellent understanding of your target users and their goals. Removing a feature requires discipline, as does deciding against adding that cool feature that really isn't practical. Simplicity requires making hard design choices instead of making everything configurable. Complex software often results from a misconception about users: that they value unused features or overly complex features they can't understand.
在保证强大的同时获取简约,这意味着有大量的内部复杂性。通常来说在设计软件时,将所有技术装置都暴露在外面比将其都隐藏要简单得多。后者要求你对目标用户和他们的目标有着深刻的了解。剔除功能需要依照一定的规则,就象不能添加那些看上去很酷但不实用的功能,简约化要求设计者做一个艰难的决定去剔除部分配置,而不是保留所有的配置。复杂的软件经常来自于对用户的误解,认为用户在意那些他们不理解的无用的或过于复杂的功能。
强大的和简约的 Powerful and simple
Power is all about enabling your users and making them productive. Simplicity is all about removing the unessential and presenting features the right way. By understanding your target users and achieving the right balance of features and presentation, you can design Windows Vista-based applications that do both.
强大就是让用户能高效的完成所需要完成的任务,简约就是剔除了不必要的功能,并将有用的功能以合适的方式呈现。通过理解目标用户,在功能和呈现之间达成平衡,你将会设计出强大而简约的应用程序。