Lecture 11
Lecture 11
Design Rules
Design Rules
We require design rules, which are rules a designer can follow in order to increase the usability
of the eventual software product. We can classify these rules along two dimensions, based on the
rules authority and Generality.
By authority, we mean an indication of whether or not the rule must be followed in design or
whether it is only suggested.
By generality, we mean whether the rule can be applied to many design situations or whether it is
focused on a more limited application situation.
Rules also vary in their level of abstraction, with some abstracting away from the detail of the
design solution and others being quite specific. It is also important to determine the origins of a
design rule.
Here are the main three points for designing for maximum usability:
Principles of usability
Make sure your design communicates its purpose clearly and is easy to understand. Keep the
interface simple, avoiding unnecessary elements that might confuse users.
Standards and guidelines
Maintain consistency in design elements and interactions throughout your product. Provide
clear feedback to users for their actions, helping them understand the results of their
interactions.
Design patterns
Ensure that your design is accessible to all users, including those with disabilities, and
adaptable to different devices and user preferences. Prioritize usability testing with real users
to identify and address any usability issues.
The design rules are used to apply the theory in practice. The theory underlying the separate
design rules can help the designer understand the trade-off for the design that would result in
following or ignoring some of the rules.
Principles, Standards and Guidelines
There exists distinction between principles, standards and guidelines.
Principles are derived from knowledge of the psychological, computational and sociological
aspects of the problem domains and are largely independent of the technology.
They depend to a much greater extent on a deeper understanding of the human element in the
interaction.
Guidelines are less abstract and often more technology oriented. As they are also general, it is
important for a designer to know what theoretical evidence there is to support them.
A designer will have less of a need to know the underlying theory for applying a standard.
However, since standards carry a much higher level of authority, it is more important that the
theory underlying them be correct or sound.
2. Flexibility
The multiplicity of ways the user and system exchange information.
3. Robustness
The level of support provided the user in determining successful achievement and assessment of
goal-directed behaviour.
Principles of learnability
1. Predictability
Determining effect of future actions based on past interaction history operation visibility.
This involves analyzing previous interactions and behaviors to predict the outcomes of future
actions. By understanding patterns and trends from the past, one can make informed
decisions about what might happen in the future.
Operation visibility: This refers to how transparent and clear the functioning of a system or
process is to its users or operators. High operation visibility means that users can easily see
and understand what is happening within the system at any given time, which helps in
monitoring, controlling, and improving the process.
2. Synthesizability:
This refers to how easily users can combine different elements or components of a system to
achieve a desired outcome. It involves understanding how different parts of a system work
together and how users can leverage these interactions to create something new.
3. Familiarity
How well a user's prior knowledge and experience can be applied to understanding and using
a new system.
Guessability:
How easily a user can infer the function of a new system or feature without prior knowledge.
Affordance:
The properties of a system or object that suggest how it can be used, making its functionality
obvious to users.
4. Generalizability
Generalizability means taking what you've learned from specific interactions and applying it
effectively to new situations.
5. Consistency
Likeness in input/output behaviour arising from similar situations or task objectives
Principles of flexibility
Dialogue initiative
System's flexibility in accommodating user input without constraints (Dialogue Initiative):
This means that the system allows users to interact freely without imposing strict rules or
limiting their input. For example, a flexible chatbot lets users ask questions or give commands in
various ways, rather than forcing them to use specific phrases.
User pre-emptiveness:
This refers to the user's tendency to initiate interactions or take control of the conversation
without waiting for the system's prompts. For instance, in a customer service chat, a user might
start by asking about a refund policy before the bot has had a chance to present options or
questions.
In essence, Dialogue Initiative relates to how open the system is to any form of user input, while
User Pre-emptiveness relates to how much users take charge of the conversation.
Multithreading
Multithreading refers to a system's capability to execute multiple tasks concurrently, either
through true parallel processing or interleaving, allowing for efficient handling of user
interactions without sequential delays. This concurrent execution enhances system
responsiveness and performance by enabling tasks to progress simultaneously.
Multimodality, on the other hand, extends the system's interaction capabilities by supporting
various modes such as text, speech, touch, or gestures, empowering users to engage with the
system through their preferred modalities, thus enriching the user experience and
accommodating diverse user needs and preferences.
Task migratability
Task migratability refers to the ability to transfer responsibility for task execution between the
user and the system seamlessly. In this context, tasks can be initiated by either the user or the
system, and the responsibility for completing them can be shifted between the two parties as
needed. This flexibility allows for dynamic collaboration and adaptation in interactive systems,
enabling users to delegate tasks to the system or take over tasks previously handled by the
system based on their preferences, capabilities, or situational context. Effective task migratability
enhances user autonomy, system usability, and overall interaction efficiency by empowering
users to actively participate in task execution and management.
For example, if you're using a navigation app, you can manually input your destination (user
starts the task), and the app calculates the best route (system takes over). If you want to change
the route, you can manually adjust it again (user takes over). This makes the interaction flexible
and efficient.
Substitutivity
Substitutivity refers to the principle of allowing equivalent values of input and output to be
interchanged or substituted for each other within a system or process. This concept is
fundamental in various fields, including mathematics, logic, and computer science. In practical
terms, substitutivity ensures that different representations or forms of data or expressions can be
used interchangeably without affecting the outcome or behavior of the system. For example, in
programming, substitutivity ensures that functions or variables can be replaced with equivalent
ones without altering the program's functionality. This principle promotes flexibility, scalability,
and interoperability within systems, facilitating equal opportunities for different representations
to be utilized effectively.
For example, in a recipe, you might use either sugar or honey as a sweetener. Both work, so you
can choose either without affecting the final taste. Similarly, in programming, you can replace
one variable or function with another that does the same thing, and the program will still run
correctly. This flexibility makes systems easier to use and adapt.
Customizability
Customizability refers to the modifiability of the user interface, allowing either the user or the
system to make changes to adapt to specific preferences or requirements. This adaptability can
manifest in two ways:
User-driven customization, where users have the ability to modify interface elements such as
layout, color schemes, or features to suit their individual preferences or needs, and system-driven
adaptivity, where the system automatically adjusts the interface based on user behavior, context,
or predefined settings to enhance usability and user experience.
Customizability empowers users to tailor their interaction with the system according to their
unique preferences or workflow, while system adaptivity ensures that the interface remains
responsive and relevant to changing user needs and environmental conditions.
Robustness
In a work or task domain, a user is engaged with a computer in order to achieve some set of
goals. The robustness of that interaction covers features that support the successful achievement
and assessment of the goals.
Principles of robustness
Observability
Observability means that users can understand what's happening inside a system by looking
at what they can see or interact with. Here are the key aspects with examples:
Browsability: Users can easily navigate and explore the system. For example, a website
with a clear menu structure allows users to find different sections easily.
Defaults: The system provides starting points or settings that help users understand its basic
functions. For example, a photo editing app might start with default filters that users can
apply and then customize.
Reachability: All important information and controls are easily accessible. For example, a
dashboard in a car that clearly shows speed, fuel level, and other vital stats.
Persistence: Users can track changes over time. For example, a document editor that shows
the history of changes made to a document.
Operation visibility: Users can see how their actions affect the system. For example, an
online form that immediately shows errors if you enter invalid information.
Observability helps users understand and interact with a system more effectively by making
its internal workings visible and comprehensible.
Recoverability
Recoverability means that users can fix errors easily once they notice them. Here are the key
components with examples:
Reachability: Users can quickly find the tools or options they need to correct an error. For
example, a software application with an easily accessible "Undo" button.
Forward/backward recovery: Users can move forward or backward to fix mistakes. For
example, a web browser's "Back" button allows users to return to a previous page if they
navigate to the wrong one.
Effort commensurate with error: The effort to fix an error matches the severity of the
mistake. For example, if you accidentally delete an email, recovering it should be as simple
as retrieving it from the trash folder, rather than requiring complex steps.
Recoverability helps user’s correct mistakes quickly and easily, improving their overall
experience and efficiency with the system.
Responsiveness
Responsiveness in a system means how fast and reliable it feels to the user. It has two main
parts:
Stability:
This refers to how consistently and reliably the system works over time. For example, an app
that never crashes and runs smoothly every time you use it is stable. If it frequently freezes
or crashes, it is unstable.
Responsive systems are quick and reliable, making the user experience smooth and
satisfying.
Task conformance
Task conformance means how well a system supports all the tasks a user needs to do. Here are
two main parts:
Task completeness:
This checks if the system helps users do all the tasks they need to. For example, in a banking
app, users should be able to check their balance, transfer money, and pay bills. If any of these
tasks are missing, the app lacks task completeness.
Task adequacy using design rules:
This looks at how well the system's design supports users' tasks. For example, in a shopping
website, having clear categories, a search bar, and easy checkout processes follow good design
rules for supporting users' tasks effectively. If the website makes it hard to find products or
complete purchases, it doesn't meet task adequacy.
In simple terms, task conformance ensures that the system helps users do everything they need to
do, and it does it in a way that's easy and efficient.
Standards
Standards set by national or international bodies to ensure compliance by a large community of
designer’s standards require sound underlying theory and slowly changing technology. Hardware
standards more common than software high authority and low level of detail. ISO 9241 defines
usability as effectiveness, efficiency and satisfaction with which users accomplish tasks.
Hardware is more difficult and expensive to change than software, which is usually designed to
be very flexible.
Consequently, requirements changes for hardware do not occur as frequently as for software.
Since standards are also relatively stable, they are more suitable for hardware than software.
ISO 9241
One component of the ISO standard 9241, pertaining to usability specification, applies equally to
both hardware and software design.
Usability: The effectiveness, efficiency and satisfaction with which specified users
achieve specified goals in particular environments.
Effectiveness: The accuracy and completeness with which specified users can achieve specified
goals in particular environments.
Efficiency: The resources expended in relation to the accuracy and completeness of goals
achieved.
Satisfaction: The comfort and acceptability of the work system to its users and other people
affected by its use.
Guidelines
Guidelines serve as suggestive and general recommendations that aid in various stages of a
system's life cycle. At the early stages, abstract guidelines, often referred to as principles, provide
overarching concepts that inform decision-making and design direction. These principles help
shape the system's foundation and overarching goals. As the development progresses, more
detailed guidelines, such as style guides, come into play. These offer specific recommendations
and standards for design elements, interactions, and visual presentation, ensuring consistency and
coherence in the final product. Understanding the rationale behind guidelines is crucial as it aids
in resolving conflicts that may arise during decision-making processes, allowing teams to align
their choices with the overarching goals and principles established for the system. Textbooks and
reports often compile these guidelines, offering a comprehensive resource for designers and
developers to reference throughout the project lifecycle.
Golden Rules
Commitment can help designer to develop more usable system.
For this purpose, numbers of advocates of user-centered design have presented sets of ‘golden
rules’ or heuristics.
Golden rules and heuristics
"Broad brush" design rules, like Nielsen's 10 Heuristics, Shneiderman's 8 Golden Rules, and
Norman's 7 Principles, provide general guidelines for good design. While they may not cover
every detail, they offer important principles to consider when designing. Using these rules is
better than having no guidelines at all because they help ensure that designs are user-friendly,
efficient, and aesthetically pleasing. Each set of rules focuses on different aspects of design, but
together they address usability, user experience, and design aesthetics. By following these rules,
designers can systematically improve the quality of their designs.
Nielsen's 10 Heuristics
Nielsen's 10 Heuristics are a set of usability principles developed by Jakob Nielsen, a prominent
usability expert. These heuristics serve as guidelines for evaluating and improving the usability
of user interfaces. Here are Nielsen's 10 Heuristics:
Visibility of system status: Keep users informed about what is happening within the system
through clear and timely feedback.
Match between system and the real world: Use language, concepts, and metaphors familiar to
users to make the system's behavior and terminology consistent with users' expectations.
User control and freedom: Provide users with options for undoing actions, navigating freely,
and easily exiting undesirable states.
Error prevention: Design interfaces that prevent errors from occurring whenever possible
through clear instructions, constraints, and confirmation dialogs.
Recognition rather than recall: Minimize the need for users to remember information by
making relevant options, actions, and objects visible and easily accessible.
Flexibility and efficiency of use: Accommodate both novice and expert users by providing
shortcuts, accelerators, and customizable settings to streamline interaction.
Aesthetic and minimalist design: Keep interfaces clean, uncluttered, and visually appealing,
prioritizing essential elements and minimizing distractions.
Help users recognize, diagnose, and recover from errors: Provide informative error messages
that clearly explain the problem and suggest actionable solutions for error recovery.
Help and documentation: Offer easily accessible and comprehensive help resources, including
tutorials, FAQs, and user guides, to assist users in understanding and using the system
effectively.
These heuristics serve as valuable guidelines for evaluating and designing user-friendly
interfaces, helping to identify usability issues and prioritize improvements that enhance the
overall user experience.
Shneiderman’s 8 Golden Rules
Shneiderman's 8 Golden Rules provide a concise set of guidelines for effective design:
Strive for consistency: Keep interface elements and interactions consistent throughout the
system to reduce confusion and enhance usability.
Enable frequent users to use shortcuts: Provide shortcuts or accelerators for experienced users
to perform tasks more efficiently, improving productivity and user satisfaction.
Offer informative feedback: Provide clear and timely feedback to users about their actions or
system status, helping them understand the outcome of their interactions and guiding their next
steps.
Design dialogs to yield closure: Structure user interactions in a way that leads to clear endpoints
or closure points, helping users navigate through tasks with a sense of completion.
Offer error prevention and simple error handling: Design interfaces to prevent errors
whenever possible, and provide straightforward error messages and recovery options when errors
occur, minimizing user frustration and confusion.
Permit easy reversal of actions: Allow users to easily undo or backtrack from actions they have
taken, providing a safety net and empowering users to explore without fear of irreversible
consequences.
Support internal locus of control: Design interfaces that give users a sense of control and
mastery over the system, allowing them to initiate and control actions rather than feeling passive
or dependent on the system.
Reduce short-term memory load: Minimize the cognitive load on users by presenting
information and choices in a clear, organized manner, reducing the need for users to remember
information or track multiple elements simultaneously.
These rules help designers create interfaces that are intuitive, efficient, and user-centered,
ultimately enhancing the overall user experience.
Norman’s 7 Principles
These guidelines are principles from Don Norman's "The Design of Everyday Things" and
provide valuable insights for effective design:
Use both knowledge in the world and knowledge in the head: Design interfaces that leverage
both external cues and internal mental models, helping users understand how to interact with the
system more intuitively.
Simplify the structure of tasks: Break down complex tasks into simpler, more manageable
steps, making it easier for users to accomplish their goals without feeling overwhelmed.
Make things visible: bridge the gulfs of Execution and Evaluation: Ensure that the system's
state and feedback are clearly visible and understandable to users, minimizing the gaps between
their actions and the system's response.
Get the mappings right: Design intuitive mappings between user actions and system responses,
aligning the conceptual model with the user's mental model to facilitate effective interaction.
Exploit the power of constraints, both natural and artificial: Use constraints to guide users
towards desired actions and prevent errors, leveraging both physical and logical constraints to
streamline interaction.
Design for error: Anticipate and mitigate potential errors through thoughtful design,
incorporating error-prevention mechanisms and providing clear guidance for error recovery.
When all else fails, standardize: Standardize interface elements and interaction patterns where
appropriate, drawing upon established conventions to enhance usability and reduce cognitive
load for users.
These principles emphasize the importance of user-centered design, cognitive ergonomics, and
usability best practices in creating intuitive and effective interfaces that support users in
achieving their goals efficiently and with minimal frustration.
HCI design patterns
HCI design patterns are a methodology for reusing knowledge about successful design solutions,
originally inspired by architectural patterns developed by Christopher Alexander. In this
approach, a pattern represents an invariant solution to a recurring design problem within a
specific context, providing a reusable template for addressing common challenges in human-
computer interaction (HCI). For example, the "Go back to a safe place" pattern in HCI addresses
the need for users to have a clear and easy way to navigate back to a previous state or location
within an interface. Just as in architecture, where patterns like "Light on Two Sides of Every
Room" address recurring design challenges, HCI design patterns offer solutions to common
interaction problems. Importantly, these patterns are not standalone entities but are
interconnected within pattern languages, enabling designers to combine them to generate
comprehensive and effective design solutions.
Characteristics of design patterns`
Design patterns possess several key characteristics that make them valuable tools in the design
process:
Capture design practice, not theory: Design patterns are derived from real-world design
practice, representing solutions that have been proven effective in addressing common design
challenges.
Capture essential common properties of good examples of design: Patterns distill the core
principles and elements of successful design solutions, highlighting what makes them effective
and reusable in different contexts.
Represent design knowledge at varying levels: Design patterns can encompass knowledge at
different levels, ranging from high-level social and organizational considerations to conceptual
and detailed design elements.
Embody values and express humane interface design: Patterns reflect the values and
principles of user-centered design, emphasizing usability, accessibility, and user satisfaction in
interface design.
Intuitive and readable for communication: Patterns are presented in a format that is intuitive
and easily understandable, facilitating communication and collaboration between designers,
developers, stakeholders, and users.
By embodying these characteristics, design patterns serve as powerful tools for capturing,
communicating, and applying design knowledge to create user-friendly and effective interfaces.