The world is increasingly moving towards a point where with
the exception of a few specialized tasks, the bulk of the mid and high end jobs
will involve nearly continuous use of some sort of computing device. While this
may strike most people as being a Good Thing, it is important to understand
that a significant number of intelligent, skilled people are going to be left
behind in the computer age.
Designing interfaces (both hardware and software) that work
well for all (or nearly all) users, not just the large part of the bell curve
is a daunting task. There are a wide variety of handicaps to be aware of (blind
users, deaf users, colorblind users, just to name a few obvious ones) as well
as physical issues (how does someone with Arnold Schwarzenegger’s thumbs use a
Treo?) to take into account.
As it is, we have a lot of potential computer users being
locked out because of these problems, and I fear that it will only get worse.
The interfaces of the future like enhanced touch screens, 3D displays, and so
forth seem to me to be a complete nightmare to someone with a physical handicap
or disability. Currently, we have people who have a difficult time with
computer displays. My sister, for example, has seizures when she uses a
computer for more than an hour or so. Many workers have carpal tunnel syndrome,
repetitive stress injuries, and other problems caused by prolonged computer
usage which limit the amount of time that they are able to work on a computer.
These people are going to be left behind while the rest of the industrialized
world moves to computers as the primary work tool.
Programmers can do their part to reduce these problems. For
one thing, they can be conscious of making sure that their software has
multiple access methods for every function: menu bars, buttons, and keyboard
sequences. They can also make sure that they put as much work as they can into
making sure that their software is usable by users with color blindness or who
are using a screen reader. They should be putting special effort into not using
text in images as well as sticking to medium-sized, high contrast font
selections that scale with the user’s preferences. Web developers need to be
particularly careful of these factors, since current “hip, cool, stylish, and
chic” Web design tends to be only usable by people with perfect vision and good
monitors. It is sad to say, but command line/text mode interfaces tend to be
more usable and readable than most GUI programs out there.
This is a really important issue for me. If there is one
thing that I find upsetting, it is seeing people who are unable to live up to
their full potential because of something like software that is not usable.
Imagine not being able to do your job because your thumbs are just too big to
operate a handheld device, or because the information you need to understand is
differentiated merely by the colors green and red? Putting 15 years building a
career, only to go into early retirement or a career change because you cannot
type for more than a few minutes without having your whole arm go numb or
having a seizure? These problems are real but too many programmers,
device designers, and employers refuse to see it.
It is up to each individual programmer to be aware of these
issues. A future in which smart, educated people are flipping burgers because
they are unable to operate a computer or use the needed software is not a very
good future if you ask me. I have believed for some time that too many IT
people focus on the flashy and ignore the basics. Usability is one of the critical
basics, right next to reliability, scalability, security, and data concurrency.
None of these are very sexy topics, except for security. When was the last time
a programmer told a project manager, “look, that system that we are working on
has some really sweet features, but displaying all of that data that way is
going to crush our servers, the needed libraries are still not stable, the
authentication is still cobbled together, and people who do not use a mouse
will not be able to operate it”? The last time I said something along those
lines, they stared at me like I had a third arm sprouting from my shirt. No one
wants to hear it. But it is still important. No one likes to hear uncomfortable
truths, and usability is one of them.