This content is cached from:
https://www.ibm.com/software/ucd/designconcepts/designbasics.html.
Design Principles
Software can be designed to simplify tasks and to create a positive
overall experience for users. Thoroughly understanding the goals of
users and stakeholders and designing software with those goals in mind
are the best approaches to successfully delivering products that will
delight customers.
The following checklist identifies core principles and best
practices to assist software designers and developers to produce
software that stands out in the marketplace.
- Concepts from the product's subject domain (for example,
systems management) should be central and apparent in the software
design.
The relationships among user interface objects
in products should be accurate, so that users can rely on their
previous experience in the domain when learning and using the
software.
- Keep it simple.
Give easy access to the
features that most users will need most of the time; features used
less often or by only a subset of users are placed less prominently.
- Optimize the design for the most frequent or important
tasks.
Understanding how users will use the software you
are designing is critically important. Designers should use that
understanding to anticipate the information, task flows, and features
that users require at key points within the user experience.
- Make the interface accessible and visible to
users.
Design your Web site or application so that users
can view and easily access objects or information within the
interface. Choices should be visible to users rather than hidden with
cryptic key sequences. When objects and choices are immediately
visible, users learn and complete work tasks efficiently.
- Use proper default values when supporting complex
tasks.
Use good defaults so that users can complete
tasks relatively easily and quickly rather overwhelming them with
choices.
- Be flexible.
Let users customize the
application to meet their unique needs. For example, specialized users
could be given a way to make secondary choices more prominent in the
product. Also, don't limit users by artificially restricting their
choices to a "correct" sequence. Flexibility is also enhanced by
letting users select options in various sequences and in letting them
modify default values.
- Keep your users informed and in control by providing
informative and timely feedback tailored to the current
situation.
For example, progress indicators let users
know that their system is healthy and is carrying out their
request. At a minimum, alert users when they take actions that will
result in the loss of data. (Ideally, such choices would be disabled
or even eliminated when they are inappropriate in a particular
situation.) All the information included in the feedback should be
meaningful to the average user.
- Things that look the same should behave in the same way,
and an action should always produce the same result.
Avoid modes that change the effects of actions. Where modes are
unavoidable, make them clear to the user and easy to change.
- Provide the ability to undo and redo
actions.
Applications must provide users with the
ability to freely explore applications (which includes the ability to
make mistakes) without fearing permanent damage.
- Make your application predictable by using
industry standard user interface conventions wherever
possible.
For example, users should be able to use
standard selection models and keyboard equivalents like Ctrl+C and
Shift+→ (to copy the currently selected object and extend the
current selection one unit to the right, respectively) everywhere they
work with data. Use a common set of design patterns and guidelines so
that users don't have to relearn how to perform common tasks.
- Always keep your target users in mind as the product is
designed.
Developing personas and identifying and
defining the roles your users fulfill can help you understand how
various roles will use your product. Designs based on typical
workflows and the other software that users might use in conjunction
with yours will delight users.
- Avoid adding features just so they can be ticked off a
list.
Remember that every additional feature equals a
set of choices added to what is likely already a wide array of
choices. Too many choices can overwhelm users.
- Design your user interface so that it can be localized
for other geographies without redesigning the
interface.
For example, don't crowd form controls too
tightly so they can accommodate longer German translations.
- Consider persons with
disabilities when designing your applications.
Many
users of your product may have impaired vision or physical limitations
that affect their ability to use a mouse or a joystick.
- Design the application so that contextual help is
available to users when they need it.
Users should not
have to refer to Help constantly to complete their tasks.
- Bring objects to life through good visual
design.
The goal of visual design in the user interface
is to surface to the user in a cohesive manner all aspects of the
design principles. Visual design should support the user model and
communicate the function of that model without ambiguities. Visual
design should not be the "icing on the cake" but rather an integral
part of the design process. The final result should be an intuitive
and familiar representation that is second nature to users.
- Create user interfaces that promote clarity and visual
simplicity.
The following visual design principles help
create that effect:
- Subtractive design: Reduce clutter by
eliminating any visual element that doesn't contribute directly
to visual communication.
- Visual hierarchy: Understand the importance
of users' tasks and establish a visual hierarchy of these
tasks. An important object can be given visual
prominence. Relative position and contrast in color and size can be
used to convey task importance.
- Affordance: When users can easily determine
the action that should be taken with an object, that object displays
good affordance. Objects with good affordance usually mimic actual
objects.
- Visual scheme: Design a visual scheme that
maps to the user model and lets the user customize the
interface. Do not eliminate extra space in your image just to
save space. Use white space to provide visual "breathing
room."
Ralph's Document Cache -
2008-09-17