windows:Principles/powerful-and-simple
出自UXGuide.net
简约而又强大
Powerful and Simple
目录 |
强大:
简约而又强大:
理想的基于 Windows Vista® 应用程序应当是既简约又强大的。你当然希望你的程序功能强大,你也当然希望它简单易用,但鱼和熊掌如何兼得?这两者之间天生存在着矛盾,但这种矛盾并非无法调和。通过仔细平衡各种功能的选用和呈现,你能够同时实现两个目标。
强大
在软件中,“强大”究竟意味着什么?一个塞满了各种特性、拥有种类与数量惊人的功能、试图让所有人都满意的程序也许可以算的上是强大的。这种设计大概不会成功,因为这些没有目标的功能特性很难满足任何人的需要。这不是我们下面要说的那种强大。
当应用程序具有下列这些特征时,即可以称为强大:
- 可用。该应用程序能够满足目标用户的需要,让他们能够完成那些无法以其他方式完成的任务,有效地达成目标。
- 高效。该应用程序能够使用户以前所未有的工作效率和规模水平来完成任务。
- 通用。该应用程序能够使用户在多变的环境下高效地完成较大范围内的任务。
- 直接。该应用程序像是能够直接帮助用户达到他们的目标,而不是碍手碍脚或是有不必要的步骤。类似快捷方式、键盘快捷键以及宏之类的特性都有助于提高直接感。
- 灵活。该应用程序能够让用户完全、细致地控制他们的工作。
- 集成。该应用程序很好地与 Microsoft® Windows® 集成,并能够与其他应用程序交换数据。
- 高级。该应用程序具有非常特别的、创新性的、start-of-the-art、在其竞争产品中没有的功能。
有些特征取决于用户的观念,并与用户此时的能力相关。什么能称为强大会随着时间而改变,今天的高级搜索功能到了明天也许就只是很普通的东西了。
所有这些特征都可以被归纳到我们对强大的定义中:
当一个应用程序使其目标用户能够充分有效地发挥他们的潜力时,即称为强大。
因此,衡量强大的根本标准是生产效率,而不是功能的数量。
不同的用户需要以不同的方式帮助他们发挥全部潜力。对一些用户有效的东西也许在其他用户那边会损害用途的广泛性、直接性及操控性。设计良好的软件必须在这些特点中找到适当的平衡点。例如,一个为非专业人士设计的桌面出版系统可以使用向导来一步步帮助用户完成复杂的任务。这种向导让目标用户能够完成他们以其他方式无法完成的任务。相反,用于专业人士的桌面出版系统则应当更注重直接性、有效性及完全控制。对于这种应用程序的用户来说,向导反而会缚手缚脚或是令人厌烦。
最重要的一件事:
理解你目标用户的目的,并挑选那些能够高效实现他们目标的功能特性。
Simple
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.
Simplicity vs. ease of use
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.
If you do only one thing...
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
Design principles
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.
The simplicity design principle
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.
Design techniques
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.
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.