|
User Friendly?
Topic: Computers
The growth in the use of the Personal Computer has brought
into prominence a very important concept of user-friendliness,
a concept that was not very used in the eras preceding this
period. In the succeeding period there has not been a term
that has been more used and abused for various means and ends.
Here we shall try to get a perspective of user-friendliness
and ask some strange questions.
Also note that a major focus of this paper is the application
of this term to the environments
of Linux and Windows.
The early beginnigs of the term user-friendly are shrouded
in mystery. But what is known is that this word alone forms
one of the biggest and the most successful mantra for the
some of the biggest software companies around. So what
is user-friendliness.
There's a lot of talk about making software more user friendly.
Some pieces of software is user friendly, while others are
not, right? Well, that seems to be the opinion that most people
have. A common view seems to be that a program is user friendly
if it has a graphical user interface, otherwise it is not.
But this is a very simplistic and short sighted way of defining
user-friendliness. All that graphical systems allows is friendliness
and not user-friendliness.
| In this
section |
| QuaxWrite
home |
Dune by Frank Herbert
Dune - the series,
#1: Dune,
Terms of Dune
|
Article:
Travelogue: Rajasthan road trip,
The Philosophy of the Free & Open,
First Look at GMail,
w32.nimda.a@mm,
The business of OSS,
User Friendly?
|
Opinion:
The gig for the Gigabyte,
Do you need Linux?,
Why I dont trust M$,
M$ has no alternative |
Fiction:
The Purse,
Alice
|
Technical Papers: Analysis & Design of
RC Chimneys my B.Tech project, Using
WADIWRK4. |
|
What is the difference? The term "user-friendliness"
also contains the word user that explicitly binds any definition
of the term to another variable - the user. It means something
friendly to the intended audience, and that is where
the buck stops. User-friendly software is that software which
does not get into the way of a user, not one that can be used
without reading a single line from the manual. All user-friendliness
requires is a fitness for purpose in the most unobtrusive
manner possible.
It is not incumbent upon user friendly software to do the
user's work for him. It is also not incumbent to provide animated
paper clips that tear across your screen. User friendliness
does not mean blandness of design, or lack of options.
One more additional point is to be taken care of before we
accept this definition. That is the type of the audience.
It is obvious that any user of the software is not one that
comes into this world with all this information about that
software built into him. He has a learning curve, for every
piece of software he uses, just like any other thing he learnd
about. User friendliness of a software can be therefore further
split into friendliness towards the newbie user and the seasoned
user. We shall therefore define the user-friendliness aspect
of the software with respect to the audience state as being
"newbie friendly" "seasoned friendly".
We have in place a set of rules and guidelines, and ofcourse
a formal definition of the term user-friendliness. We shall
use these tools to examine and understand some of the present
concepts of user-friendliness that are prevalent in the community.
We shall then proceed from that analysis to examine more important
questions.
All
user-friendliness requires is a fitness for purpose nothing
else
|
A few examples before we go on. Emacs is just another text
editor. For a newbie. But any user of emacs who has learnt
the keystrokes will swear by emacs till death. Therefore emacs
is user-friendly as it does indeed makes itself fit for the
purpose and does it well, it also is more seasoned friendly.
Take the MS-Paint program as another example. Almost every
user has used it when he was takind his first faltering moves
with the mouse. This program is very simple and intuituve
to use. A simple straight forward application for a simple
straight forward use. We may argue about the purpose of the
program for which it is claiming fitness to, but the point
is that this program is classic newbie friendly. I
am aware of the bias in choosing examples but this was only
for the purpose of illustration, and so no inferences are
to be drawn right now.
The present concept of user-friendliness
There are a number of misconceptions about user-friendliness.
I shall look at a few of the present attributes of software
that are due to misapplication and mis-interpretation of the
concept of user-friendliness.
User friendliness has come to denote the GUI, especially
when it comes to comparisons between Windows and Linux. "Linux
is less user-friendly" because it does not have a
GUI like Windows. While the "fact" itself is arguable,
that is not the intent here. The fact of the matter is that
Linux, like its predecessors in Unix, has a rich set of small
and powerful tools, that achieve a particular objective and
do so the best way that they can. This tends to be a lot newbie
unfriendly, because of the large number of tools available,
and the variety of options that they provide. But again most
of the tools that are needed to run on the commanline are
those that actually do benefit from using the command line.
Also these are tools that are not really meant to be used
by a newbie, unless he is probably interested in the tool
itself. Finally most of these tools do come in with a standard
help on the commandline itself. Going by our earlier strict
definition of fitness for purpose for the intended audience,
all the commanline tools do indeed pass this criterion. They
can be safely concluded to be user-friendly. If you find the
use of some of these tools difficult or otherwise difficult,
think a second they may not probably be for you. You might,
have another option of doing the same thing that might be
more friendly towards you.
Another common view of user-friendliness of user-friendliness
has been "uniformity". Similarity of interface,
and similar looking names so that users dont take time to
adapt to the software. Although this concept is admirable
per se, but an application of our rules makes us thing otherwise.
A program is required to be fit for a particular purpose.
Which means, so should the user interface. Any good interface
should be intuitive for the purpose for which it has beed
built. And once this is done I see no reason for "uniform
interfaces" and "ease of getting used to
new interfaces". If you cannot make a spread sheet
look like a word processor, the concept of uniformity does
not exist and had not existed. Infact I will go so far as
to say that all talk of uniformity of interfaces has never
existed, was a product of the PR team rather than the developers,
and was infact a limitation of the GUI to be unable to provide
ease of creation of new interfaces to the developers.
An aside here. The concept of similar interfaces has been
abandoned by all the major software developers. The present
term is "intuitive" interfaces. The reason is obvious.
When a firm spend a lot of money actually developing software,
it would like to make it distinctive and have top of the mind
recall for its customers. The interface is the only way of
doing it. Given the limitations of adhering to the user-friendliness,
the companies obviously have opted out. So not only is the
concept idiotic, it does not even exist, except in the PR
department briefs.
The
computer's ease of use must not be held against Computer
Science
|
User friendliness is come to mean the aggregation and
integration of multiple functionalities into single monolithic
all powerful programs. This is one of the great myths of personal
computing. There have never been any programs that make things
all powerful, and integrated at the same time, which have
also been extremely powerful, safe and easy to use. Perceptions
of user friendliness have always been at loggerheads for deciding
which functionalities to include into a single program. Making
a single huge program will also mean providing a lot of configuration
options, which is considered not to be user-friendly. Hence
given the functionality in a integrated program, there are
inevitably a number of ways to do all of it better with smaller
more focussed programs. This has indeed spawned a new industry
offering tweaks and hacks into known software to extend and
increase functionality. Integration is newbie friendly and
seasoned unfriendly.
A by-product of user friendliness coupled with the closed
software model has stressed on hiding the internals of
the software from the user. This is evidently to protect
the user from the program, and make sure that he is not intimidated
by the software in any way. Infact it is more to hide the
shoddy work of the programmer, hide all flaws under the hood,
keep the user uninformed and keep that poor idiot permanently
dependant on the service department and new product updates.
One really absurd interpretation of user friendliness is
perceived to be lack of information on what the programming
is doing at a time. It is considered to the program to apparently
freeze up rather than give information on what it is trying
to accomplish. On the contrary what user friendly software
should do is to keep the user informed about what it is achieving.
Normally the user would ignore all that information. But this
becomes absolutely invaluable in times of errors. Any such
information would be very useful in diagnosing faults, and
for first aid. With the programs denying the user such knowledge
he is bound to the support and service for salvation.
One final measure of user friendliness is the lack if information
about how the program works. Modern OSes provide a
number of ways of achieving the same objective. The absolute
lack of technical information in the help, and limiting help
files to "click here" information is hardly friendly.
It may be argued that such information is not newbie friendly.
Depends on the capabilities of the newbie really, and what
is achieved by not including it at all. A real I-dont-care-a-damn
newbie will never look into it anyway, even if it were included.
But not including it actually makes the program unfriendly
as it would take away crucial information about the fitness
of purpose of the software.
Evaluation of the need
Ask any layman who uses computers about what he believes
to be the most important requirement of a computer system.
More often than not he will come up with the cliched user-friendliness.
But should it? In other words why should computer systems
be user friendly?
This may seem blasphemy to all but hear me out. The fashionable
thing to do today is to make things user friendly, this has,
on one hand, led to the development of the click and do interfaces.
It has also, on the other hand, led to the excommunication
of geek-speak from products of computer science. I need to
dwell upon this for a little perspective on the path my reasoning
is going to follow.
...user-friendliness
does not exist in vacuum
|
Through out man's history we have seen a number of sciences
grow and develop. Without fail we have seen each science develop
its own language. Practitioners say it allows easy and quick
communication. Sceptics say this is to protect the practitioners
of the science for the laymen. No matter what the reason,
the fact remains that this particular stream of computer science
is being denied of use of its own language from its own products.
The point is simple. Computer science is just another stream
of science. Practising it needs just the same amount of learning
and preparation that any other stream of science needs. And
just because it has the ability to reach the masses should
not take away from the fact that it needs the respect that
any other branch of engineering gets. Its ease of use should
not be held against it.
To take complete advantage of this argument it is necessary,
like in any other branch of engineering to identify the various
components of the user populace. We shall split the user populace
into two categories. The first we shall call the "dummies",
after the famous set of user manuals that flooded the market.
These are users who are primarily concerned with not the product,
but only what it does for them. These users are the ones who
should be given the whole "ease of use benefit".
The titles that these users use are primarily the end user
software like the word processor, spread sheets, multimedia
applications, browsing and P2P applications. This will also
include the large quantity of applications for other fields
of study. All software that is used for data processing by
members of other branches of science, engineering and even
art come into this category. This therefore forms not only
the biggest segment, it also is the most elastic and responsive
to the user-friendliness of software.
Unlike common perceptions this will also be the toughest
segment to program for. Instead of the sorry software of today
that is sold to this segment, there should be more really
user friendliness built in. There needs to be a lot of improvement
in the software, which actually means not floowing the present
norms. The following is a set of guidelines for the kind of
software that is expected to meet the needs of the the dummies.
- Software must be focussed, and accomplish more
with little effort, especially when it comes to engineering
applications
- The software must make things transparent to the user,
as far as the actual implementation of the various options
in the program goes. It is not necessary or desirable for
the software to prevent the user from being able to do things
differently, in a way he desires. One such idea is preventing
- The software must keep the user in the loop, communication
to the user through visual and audio signals denoting the
function performed. The signals should be subtle enough
to ignore. For example the status bar is a great place to
give a lot of information on what the program is performing.
- While it may be required to keep the initial configuration
of the program simple, no attempt must be made to reduce
the option set available to the user. Advance configuration
options are a must.
- Rather than keep the interface standard, stress should
be on keeping the interface simple, uncluttered and intuituitive.
- Documentation is important. Just like it is desirable
to keep the configuration simple, without reducing the available
options, advanced information and advanced implementation
should be discussed. Any issues that may be faced by the
users must be documented. If a known bug exists, it should
be listed. Any warnings to the user must be explicit and
easy to understand.
- The user must forever be in control of his own machine.
Rather than annoying OK popups, more desirable is to provide
logs, keep track of changes performed and give the advanced
user power to see and undo any changes made to the system.
Then we have the "power-users". These
are the users who are either directly related to the branch
of Computer Science, or those who are well versed with the
usage of software. The kind of software this segment will
be using will be the high end server level software, like
web servers, SQL servers etc. This will also include those
from the dummies who have gained an insight into the working
of their own software and are willing to experiment and learn
more. This is a set of guidelines for this kind of software.
- These users are not newbies and should not be assumed
to be the lowest rung of the use populace. The interfaces
should be designed using common configuration themes
- Administration should necessarily be centralised and be
powerful and flexible.
- Information should never be hidden from these users. Configuration
options should never be limited to a few option sheets.
It is strongly advised to follow the configuration file
method of setting options. The Administration console may
be a front end for a limited set of options. If the console
can list all the options it is welcome, but none should
be dropped because of lack of space.
- Alternate methods for similar tasks may be optional but
no attempt must be made to make it transparent. The user
should have the power to choose.
- Documentation should be complete, easily accessible and
also include relevant technical and implementation information.
- Log files are a necessity and so are front end analysers
for those log files
- The administrator should for ever be in control of the
machine, under all circumstances
Linux...is
a server which can be more friendly than a Desktop OS
|
Having defined what we expect from the software, we shall
answer the first question, why should computer systems
be user friendly?
The only reason computer systems should be user-friendly
is to perform their intended function, for the intended audience.
True programs are written by correctly identifying the
intended audience, and the function is equal proportion.
No user-friendly software can be called such if it chooses
to ignore one of these two aspects. No concept of friendliness
makes sense without both these variables defined, user-friendliness
does not exist in vacuum.
Windows and Linux
Based on the discussion above, how do Linux and Windows measure
up as Working environments. We shall look at the two environments,
one supposedly user friendly and the other user unfriendly.
We shall then dispell some myths and then evalute their positions
on the same.
Windows enjoys the position of power in the personal computer
segment. This has been to a great extent due to its early
mover advantage. Also the perception that Windows is user-friendly
had a very important role in this. But how did Windows approach
user-friendliness. And is this approach justified?
Windows assumed all of it users to be a bunch of morons.
To give credit, it assumed that all it users are those that
do not want to spend time at all to spend on trying to know
the system that they were using. This may be true to an extent
but it sure is a flawed. Although Microsoft has become the
biggest player in the PC segment, it sure has lost out on
the more advanced markets like say the server segment.
Microsoft through Windows has been highly user focussed.
All of its decisions have been end user focussed. And this
end user has been the common man, one who does not want to
learn about the tools that he uses. This is brilliant when
it comes to marketing strategy, but is bad strategy for building
software. They say that the problem with Apple has been that
it hired engineers to do marketing. The problem with Microsoft
has been the fact that it hired marketing guys to do the development.
That is in a few words it. That is the reason for a decent
user interface, not no intuitive layout and pathetic functionality.
In its desperation for user acceptance it forgot the part
that a software is defined by its functionality as well. So
we have software that is highly conforming to the standards
that it had set about user-friendliness, the functionality
has been sacrificed. It is possible to rant about it, but
a quick look at the reasons for Microsoft bashing does suggest
this thing.
Also Microsoft's focus has been on the simplicity of the
interface, that all their products are known for. So what
does Microsoft gain by this. By making a simple uniform interface,
it prevents product differentiation. It prevents people from
differentiating between competing products, giving the choice
of these products back to the developers of the OS itself,
that is Microsoft.
So is this software user-friendly. According to our definition
it is not, it is flawed. The software may be newbie friendly
but it sure is not complete user-friendly software. Because
it does not give the function of the software enough say in
deciding the design of the software itself.
What about Linux. This can be viewed as two things. First
Linux with its Unix roots, as a server application. And then
it its new avatar of a desktop alternative.
Unix, has been the most powerful and widely used OS in the
past. It is incredibly stable and powerful. As many testimonies
will prove. But it had absolutely nothing to show for user
friendliness. To use unix one had to undergo a vast learning
curve. This obviously gave it absolutely low newbie friendliness.
But on the other hand it did have a lot to show for the friendliness
with the focus on functionality, and power of use.
But things are changing with the new focus. Linux is with
a new focus now. Under the new focus of desktop users it has
developed a number of things. Linux has the most powerful
and easy to use Windows Managers. It had graphical front ends
for all the products that a simple user wants. It also has
easy to use products for all kinds of users. What are described
as products which are notoriously difficult, are actually
intiutive. And then come with a tremendous amount of documentation.
Linux is special in the fact that it has products for all
the levels of users. And it has no barricades against getting
more information yourself. Information is the most important
thing in a Linux system. All the supposedly cryptic commands
are not for the everyday users. And then how can one use that
to dismiss Linux as a desktop alternative. Linux it more than
a desktop alternative alone, it is a server which can be more
friendly than a Desktop OS.
So is Linux user-friendly. Not really. It does lack in most
of the easy to use interfaces. It sure is newbie unfriendly.
But the point to note is the focus. It is just not on either
the program or the user. It is on both. Hence in the long
run it is Linux alone that can have any truly user-friendly
programs. If I were a punter, I would put my money on the
Linux horse. It may be slow now, but it will only get faster.
All Rights Reserved
|