Summary by Rahul Singh and Charles Carroll
One of the first books that Charles told me to read was a book written
by the inventor of Visual Basic. Visual Basic is one of the most
popular programming languages thanks to Microsoft and Alan Cooper. Alan
apparently wanted to redo it but Gates pushed him to release it. Thanks
to their work ( and thousands of others), we now have things like
Visual Studio .NET 2005.
When I worked for BTG (now Titan) in high school, Dr. Temple told me to
read the SEI-CMM to get an understanding of all their "official"
software development methodology. Until then I had coded for my
business using PHP, Bash, Perl without any requirements documents and
just worried about getting the job done. The job definately opened up
my eyes as to what could be done with a planned action of software
development.
"Inmates" is one of those books that causes a paradigm shift in one's
mind of how to do things. For me the book changed the way I perceived
business and technology because it doesn't necessarily contradict
traditional methods to design and develop software, but it forces one
to go through a strong interface design phase before delving into
construction. Why would you build a house without knowing who is going
to live there and what they need?
Inmates has a simple philosophy to Interface Design. Define the
Personas. Define their Goals. Work to meet their goals. I have always
been a goal and objective oriented person and after reading this book,
I have looked at the world of software and especially interfaces from a
completely different vista.
Since Inmates are Running the Asylum, Cooper Design released two other
books. About Face 1.0, and About Face 2.0. Both are very technical in
their content. Inmates itself is a light read and as said by Alan
himself "its a book for technology minded business people and business
minded technologists".
I've only focused on a few parts that Charles and I thought were
important to getting the point across. (BTW, The Real Executive
Summaries ( summary.com ) has awesome books in this format )
Part 4: Interaction Design is Good Business
The current design methods used in technology just don’t work. They
yield products that dehumanize people. The “Goal-Directed Method” is a
set of guiding rules and tools that solve problems they way they should
be.
Designing For Pleasure:
Personas
Personas are the hypothetical people for which the application or
product is being designed for. They represent the actual users. Design
of software should be geared towards one persona, not many. Products
designed for one Persona are better because every extra feature added
to accommodate another user will hamper the first’s ability to get
their work done.
Persona definitions are very important. Too often we try to stretch and adapt define users
Elastic Users as their target audience. Doing this causes the software to made for too many people, and it fails to do it's job properly.
Personas must be specifically designed with great detail. A
persona with a name, age, background, and possibly skill set provides a
great reference point for all those involved. Personas must be
hypothetical. They cannot be too representative of a real person. A
real person’s needs aren’t always what others might want. Personas must
be designed with
precision, not
accuracy. “It is more important to define the persona in
great and specific detail
than to have it be the precisely correct one.” Personas can’t have edge
cases, and must be designed as an average person, precisely.
e.g. Average people don’t have 2.5 children, but rather 2 OR 3.
User skills must be realistically assessed. Most users don’t fit the
profile of a “Power User”, “Computer Literate”, or “Newbie.”
Personas are an extremely
valuable communications tool; they can
help quell any arguments over features. All design decisions must be
what the persona needs, or it can be thrown out. All features must pass
the test of a persona’s goals. “Does Persona Johnny have to export to
PDF?” If Johnny doesn’t that means adding PDF export is unnecessary.
Personas are important for both Designers and Programmers. Both must
understand the goals and needs of the specific personas by taking on
the personality of one. Then only can they both see what is needed in a
product and what’s not. Products must be
designed for the User, not the buyer.
The person buying the product may not necessarily be the person using
it. IT managers buy for end-users in a corporation. If the software is
designed for the end-users, the manager and the end-user can both be
satisfied. Good software designed for the end-user means less help-desk
calls for the manager.
It is helpful to create
multiple Personas for a product. The product isn’t going to be designed for all of them.
“Some are defined to make it clear that we are not designing for them.”
The definition of the Primary persona is important. The product must be
designed for this persona. If two primary personas will be using the
product, then the interface should satisfy both their needs. Too many
primaries might mean that the problem hasn’t been narrowed down enough.
The best thing to do is to create different Interfaces for different
Personas.
Defining precise personas helps make software that gives people
pleasure. Defining their goals helps make the software better by making
it powerful.
Designing for Power:
Goals
Personas and goals are inseparable. They are like yin and yang. “A
persona exists to achieve its goals, while the goals exist to give
meaning to the persona.” Goals are why people carry out tasks. Products
must have a purpose. People use products for some purpose. “You cannot
have purposes without people.” They are both important. That’s why the
two key elements of the design process are goals and personas; purpose
and people.
“The essence of good interaction design is devising interactions
that let users achieve their practical goals without violating their
personal goals”
Important Personal Goal:
NOT FEEL STUPID
Goals are not tasks, and
tasks are not goals. A goal is
what a person wants as the end result. Tasks are the steps that help
them achieve that goal. Tasks can change as technology changes as the
goal may remain the same. A person wanting to eat a well-done steak in
the 1800s might have to kill a buffalo, skin it, cut it, trim it, star
a fire, and cook it. Now a person can drive to Giant, pick up a pack of
meat, pay for it, come back home, put it on the stove, and cook it.
Another practical goal for people is to go from D.C. to N.Y.C. Two
hundred years ago, people would have had to either go by horse,
carriage or ship. Today, the same goal can be accomplished by car,
train, or plane. Maybe in the future, we maybe able to teleport. (NASA,
When are you getting this released?)
Programmers design software to fulfill tasks, not goals. Since programs
are made up of step-by-step procedures, it’s easier for programmers to
design features that meet specific task requirements.
“Interaction designers analyze goals to solve problems.” Analyzing the
goals helps find better solutions, because
that’s what needs to be done: to satisfy the goals.
Principle of Commensurate Effort: The user is willing to invest
extra effort because they know they will get extra rewards for it.
As well as practical and personal goals, there are corporate and false goals.
Personal goals are simple, universal, and personal. Corporate goals are
important since the every individual's personal goals affects the
corporate goals, which are pretty important. Practical goals bridge the
gap between objectives of the company and the objectives of the
individual. False goals are set usually to ease software creation,
fulfill task and feature needs.
Personal Goals
- Not Feel Stupid
- Not Make Mistakes
- Get an Adequate amount of work done.
- Have Fun (not get too bored)
Corporate Goals
- Increase profits
- Increase market share
- Beat Competition
- Hire More People
- Offer More Products and Services
- Go Public
Practical Goals
- Avoid Meetings
- Handle the client’s demands
- Record the client’s order
- Create a numerical model of the business.
False Goals
- Save Memory
- Save Keystrokes
- Run in a browser
- Be easy to learn
- Safeguard data integrity
- Use cool technology
- Make it look pretty
Designing for Politeness
In order for people to like software, it must be
polite.
Polite software:
- is interested in me
- is deferential to me
- is forthcoming
- has common sense
- anticipates my needs
- is responsive
- is taciturn about its personal problems
- is well informed
- is perspective
- is self-confident
- stays focused
- is fudgable
- gives instant gratification
- is trustworthy
Designing for People:
Scenarios
Once
user personas and their
goals have been defined carefully, then only can the tasks be put in place. Tasks can be incorporated as
scenarios.
A scenario is a concise description of a persona using a software-based
product to achieve a goal. Creating scenarios is similar to acting. An
actor assumes the role of a character and then tries to become him/her
in every respect as they act in a certain scene. To create scenarios of
a persona, the designer must think like the Persona and try to see how
they would meet their goals. Two types of scenarios must be created for
a user and their goals, the third can be ignored.
Daily Use Scenarios are the most useful and important. These are
the primary actions that the user will perform, and probably most
frequently. Most users only have
one or two daily use scenarios.
Daily use interaction must be robust and assisted by on screen help.
Additionally, these actions should be customizable, and be able to be
accessed by shortcuts.
Necessary Use Scenarios include actions that
must be performed,
but are not performed frequently. Actions like truncating tables and
purging databases are examples of necessary use that don’t need the
kind of customization that a daily use interaction might.
Edge Case Scenarios can be ignored during product design. While the
code may succeed or fail on its ability to handle edge cases, the
product will
succeed or fail on its ability to handle daily use and necessary cases.
The ability of a product to meet the Daily and Necessary use
interactions are what will determine its success.
Personas, Goals, and Scenarios are the most important concepts in product design. Others include
inflecting the interface, perpetual intermediates, vocabulary brainstorming, and lateral thinking.
Products that are powerful might end up with complicated interfaces. To keep the balance of power and simple interfaces, the
“inflecting the interface”
technique is used. An interface can be simplified by placing the
controls and data needed for the daily use scenarios in the main
interface, while pushing others to another secondary interface (e.g. an
advanced menu).
Perpetual intermediates are the type of people that are neither
beginner nor experts. The experience of people using interactive
systems tends to follow the bell curve of statistical distribution.
There are very few beginners, and experts, however the majority of
people are intermediates. Beginners usually don’t stay beginners,
because they don’t want to feel incompetent. People usually start off
as beginners of a certain skill, learn what they need and become
intermediates. One they are comfortable with their level of knowledge,
they stay where they are. If they can’t learn the skill, they just drop
off.
Programmers Design for Experts. Marketers Design for Beginners.
The end result is software that is hard to use, but with wizards for
beginners. The intermediates just have to use whatever works, but never
really be able to do their jobs the way they should.
Pretending its magic is a good way to focus on the goals rather than the tasks.
Tasks will change as technology changes, but goals remain constant.
If we think that the goals can be achieved magically with a magical
computer, it will spawn better ideas of reaching those goals.
(Horse ... Car .. Plane .. TelePortation)
A set of detailed and precise
vocabulary can be very helpful in
the design process. Parts of the project, UI controls, etc. can be
confused between different members of the team or between departments.
A good
common vocabulary alleviates communication problems.
A way to make great products is to use
lateral thinking. Lateral thinking is a process in which
reality bats last.
Engineers make new products by doings things that are practical,
possible, and doable. However, to get to great solutions, one must
think of the impossible. Following a path in which no apparent solution
comes through will either lead to new and amazing ways to do things, or
the solution itself. If it’s truly impossible, then that’s reality.
“Reality never needs an advocate, because it can never be denied. It is always true that reality bats last."
Hardware and Software has been bundled in the past without being
given much thought to its interactions together with the user. Users
can get frustrated if the two don’t work together. In most hybrid
scenarios, hardware designers are in the majority and don’t interact
much with the software designers. The goal-directed design process can
be used to solve these problems.
In design,
less is more. Less interface, less fluff, less
everything lets the user do his daily business and achieve his goals
without thinking twice about doing it. As programmers throw code away
from their programs when they find new algorithms, they make their
program better and more efficient. Similarly, when designers decrease
the number of clicks, buttons, and icons that a user needs to worry
about, they make the product more efficient for them. Doing more with
less is always better.
Part 5: Getting Back Into the Drivers Seat
Desperately Seeking Usability
The development process can be improved to allow products to come out
which are usable. Before programmers would program, test for bugs, and
then tweak. This doesn’t work, because the user doesn’t see the product
until it’s done. In some places users are brought to test the program
while bug testing is going on. This still doesn’t work.
Writing code is to interaction design as pouring concrete is to architecture. Proper design must be in the process
before any programming begins.
Usability methodologies hands the control to the programmers. Once they have done the application, then the users can test the program.
User testing
and usability methods can only smoothen the usability of an application
that was designed for a particular user persona. It won’t do much for
applications that weren’t designed before they were built. User testing
before programming can be done in research settings to find out certain
insights that wouldn’t be apparent otherwise. Usability testing should
be integrated into the design process and can produce better products.
“To
paraphrase the toothpaste people, user testing has been shown to be an
effective, decay preventative technique when used in a conscientiously
applied program of Goal-Directed design and regular professional care.” Multidisciplinary teams
with users, programmers, managers, marketers, and usability
professionals usually don’t work. This “seat-at-the-table” solution
fails to put design in front of programming. Programmers have been
given the ability to design the applications they code. Since their
designs aren’t challenged, they keep programming the applications as
they wish. Once they have done this, they don’t want to let others
design. Most programmers are good designers, but they just focus their
design efforts to meet the goals of other programmers.
Usability professions believe you can’t know if an interaction is good
unless it’s tested. Interaction designers rely on their experience,
training, and judgment to make an accurate evaluation.
Style guides
are collections of examples and use suggestions for visual or
non-textual cues that may be helpful in areas where users might get
confused. A certain color button may be used to group buttons that do
related tasks, or a gray outline might signify advanced features. These
don’t help by themselves and must be used in a case-by-case basis in
the goal-directed method.
Visual design must be used to compliment the interaction and functionality of a product or application.
Cool new technology
won’t always help interaction and can make it possible to frustrate
users with faster and more powerful systems. Technology requires design
to be the complete solution for real users, regardless of what
combination of technologies we use.
It is a commonly accepted truth about software development that the
way to get good interaction is to iterate. Iteration is a good element
in good design: keep working on it until its right. Many developers
however think this means to push out versions of the software in the
dark. This process is too expensive and only companies with strong
brands, piles of money, and lots of time can do this. (e.g Microsoft,
Oracle, Google yadi yada)