|
08.10
When
Time Remaining Is Not Time Remaining
By Edward J. Joyce
In the early days of
computers — sometime after the invention of the
abacus, but before you could buy a computer next
to automotive supplies at K-Mart — the user
interface was a simple flashing cursor. The
cursor flashed, the computer was waiting for
you. The cursor disappeared, the computer was
computing. On what or how long the
computer was computing, well, that was
the computer’s concern, and it was time for you,
the user, to multitask and perform some vital
business function like taking a coffee break or
completing a graduate degree while waiting for
the computing to complete.
After decades of technological
advances, the user interface has evolved beyond
this simple on/off signal into a
maybe-it’s-on/maybe-it’s-off cacophony of video
and audio, touch screens, and voice commands,
among other interactive media. Computer geeks
gush giddy over building these rich interfaces, but the final products often
leave end users feeling exhausted and
emotionally drained.
Consider the hourglass,
something you no doubt saw the first time you
turned on a computer (and probably wish you
would see much less). The software turns the
cursor into a cute little hourglass, often with
pixels of trickling grains of sand, to inform
you that the computer is computing on
your input and will respond soon. Nice
idea, except when a broken user interface sets
out to etch the hourglass on your screen in
perpetuity or until the power grid fails.
Software designers have
endeavored to improve on the humble hourglass by
adding Time Remaining display boxes. When you copy a large file, start a download, or task your computer with something important that
needs to be done now, the computer will
try to keep you dutifully informed by displaying
Time Remaining. Instead of a counter
ticking down the time with nanosecond precision,
though, it is not unusual to see random digits
popping up on the screen like balls floating in
the cage of a Powerball drawing. The
counter may start at 60 seconds, and after 15
seconds it shows 80 seconds followed by 98
seconds and 74 seconds and 86 seconds. The
numbers have a better chance of being next
week’s lottery winner than the actual time
remaining. NASA scientists take note: Be sure
the writers of that code are permanently blacklisted from counting down Space Shuttle
launches.
In another flavor of Time
Remaining, web browsers such as Internet
Explorer and Firefox use a status line to
indicate the progress of pulling down
information from the Internet. The browsers
display Waiting or Transferring on
the status line at the bottom of the window
followed by Done. In many cases, though,
Done means a little done, semi-done,
not-yet-done, close-to-done, or
pretty-much-done. When you click a link on one
of these not-so-done pages, your clicks are
systematically ignored for tens of seconds after
Done appears on the status bar. Sometime after
your incessant clicking has left the image of
your mouse permanently engraved into the surface
of your desktop, the page is REALLY done and the
web links respond.
User to
web site administrator: “Your web site has a
problem. The browser said the page was done but
the links do not respond.”
Administrator: “It was done but the electrons on
the screen were cooling so they would not burn
your eyes. Give it a few seconds.”
User: “Ah-ha, it’s working now.”
Rivaling Time Remaining and Done
for redefining English language vocabulary is
Percent Complete. Unlike Time Remaining, the
Percent Complete counter does not increase and
decrease at random but its behavior can still
make you reach for prescription narcotics. The
percent counter typically appears as a progress
bar with a value ranging from zero to 100. Good, so far. Once the program starts churning,
it may suddenly and without warning take a
sabbatical at — well, depending on the phase of the
moon — say 35 percent. Or, having reached 100
percent, it may
decide it has earned a sabbatical and the
program pauses for a period exceeding a Super
Bowl half-time before unceremoniously exiting.
On the input side of the user
interface, computers still have a long way to go
to demonstrate the existence of artificial
intelligence. Case in point: entering a date. In the ‘premium’ version of one of the leading
tax software packages, the software insists that
you enter ten characters in the format MM/DD/YYYY
when you enter a date for the sale of a stock.
Will the software accept 9/14 as an abbreviation
for 14 September? Nooo. Will it accept 09/14? Nooo.
Will it even accept 09/14/08 when you are
running the software to prepare your 2008 taxes? Nooo. What any person with an IQ
greater than your average crustacean would
recognize as an abbreviated date will not be
accepted. YOU MUST ENTER 09/14/2008. After
all, 09/14 may have meant 09/14/1908 for those
filing amended returns for great-great-great
grandparents; or 09/14/2108 for those who like
to pay their taxes a century in advance; or
09/14/1508 if you’re Christopher Columbus.
While we may never know what
team of experts decided on the
whole-date-and-nothing-but-the-whole-date
scheme, it is obvious that many businesses with
e-commerce web sites design them in consultation
with medical practitioners who profit from the
treatment of eye ailments. The tell-tale sign
is how credit card numbers are entered,
something that probably occurred a thousand
times on the Internet in the seconds it took you
to read this sentence. The typical 16-digit
account number shows on credit cards and bank
statements as four morsels of data separated by
dashes or spaces for easy assimilation into the
cerebellum of Homo sapiens. The vast majority
of web forms insist on a continuous smorgasbord
of numbers, sans dashes or spaces, that
overheats the optic nerve as your eyes pinball back and forth from credit card to computer
screen. Insert dashes or spaces — INPUT ERROR,
you doofus.
Before you can enter that credit
card number or any data for that matter, the
cursor must be on a data entry box, which begs
the question why is the cursor somewhere else
when a web page requiring data entry is opened? For example, a web page may require you to enter
a user name or ID to get access to privileged
information. You open the page in a web browser
and are presented with a box for entering the
name, but if you start typing nothing appears on
the screen because the focus is not on
the data entry box.
To focus the focus, you
take your hand off the keyboard, find the mouse,
grab it, begin sliding it to position the cursor
over the edit box, whip the mouse back and forth
in fly-fishing side-casting motion to unravel
snarled mouse cable, click the mouse button over
the edit box — with, by this point, a hammering
force that could drive nails through hardwood
furniture — and the computer responds with a
flashing cursor awaiting your input. If the
programmer had programmed the focus on the edit
box, there would be no need for all this
hocus-pocus to focus the focus.
Besides a user-friendly default
focus, user interface builders often forget the
default action of the Enter key. Going back to
the previous example, once that user name or ID
is keyed in, the next action is to send it and
proceed to the next web page. Web pages
typically have a Login, Continue or Go button
beneath the edit box for performing that
action. If the programmer was looking out for
the user, the Enter key would also perform that
action by default so you could key the
characters and press Enter without removing your
hands from the keyboard. The alternative is to take your hand off the
keyboard, find the mouse,
grab it . . . (see the previous paragraph for
the rest of the routine).
Botching the focus and default
Enter key action are minor compared to the
mother of all user interface transgressions, the
clearing of web forms via the Back button. Picture the scene: You need a birthday present
for your spouse or significant other and rather
than fighting traffic to shop brick-and-mortar
stores, you decide to go the point-and-click
route at that 24x7 shopping emporium called the
Internet. You find the perfect potholder and
dish towel ensemble at the web site of a major
retailer, add it to the cart and click ‘check
out.’ On the next page you’re confronted with a
form requesting more information than a job
application for the CIA but you, the minion of
your computer, respond in earnest, checking and
double-checking your keystrokes as you enter
first name, middle name, last name, mother’s
maiden name, father’s maiden name, daytime
telephone number, evening telephone number,
afterlife telephone number, e-mail address,
verify e-mail address, and 16-digit credit
card number.
In the middle of filling out the
form, you take time to cut your fingernails
which have grown a quarter-inch since you
started this data entry marathon, and eventually
you reach the bottom of the form and pounce on
the Next button.
Preparing to high-five yourself
for remembering to buy the birthday present, you
see INPUT ERROR, you doofus, in a
4196-point size font that is clearly visible to
anyone within a five-mile radius. The computer
has rejected your input because dashes are
forbidden in telephone numbers. No problem. You click the trusty Back button on the browser
to fix your boo-boo.
At this point, you’re sure that
you’re hallucinating (probably, the prescription
narcotics), or that your mouse malfunctioned and
it double-clicked the Back button instead of
single-clicking because you are now staring at a
blank form with no sign of your previous 45,000
keystrokes. You rat-tat-tat the refresh button
on the browser, machine gun style, hoping to
revive the dead and departed data before you
face the stark realization that the computer has
efficiently and coolly vaporized every single
character you entered on the form.
If web form clearing via the
Back-button happens to you only once, it’s one
time too many. Although the practice is less
common than it was in the early days of the
Internet, by now it should be permanently banned
by federal edict.
Software can be built with Back
buttons that preserve data, with Enter key
actions that conveniently trigger next steps,
and with Time Remaining counters that would not
be mistaken for random number generators. The
basic design tenets are taught in Programming
101. Many software builders are not applying
the basics of Programming 101, however, because
they’re not taking Programming 101. In its most
recent survey of computer science enrollments,
the Computing Research Association reported that
computer science majors in bachelor degree
programs have declined by about half between
2000 and 2008. (Enrollments did increase by 6.2
percent from 2007 to 2008, something a New York
Times reporter, who has probably been smitten by
unforgiving Back buttons, described in hopeful
terms as a significant revival.)
Regardless of the number of
computer science grads, the www for software
(world wide want) continues to increase as
software becomes more ubiquitous in cell phones,
automobiles and any gadget with a battery or
power plug. For programming these devices,
though, we may be at the mercy of self-educated
apprentices, as well as seasoned software
engineers whose priorities are to get product
out the door, rather than coddling the user with
best-practice user interfaces.
If you are a builder of
software, consider how the design of the user
interface can help alleviate mind-numbing
drudgery for us keyboard-and-mouse-tethered
workers of the information age. I, for one,
won’t mind paying more for the products of
programmers who take time to get the Time
Remaining right. Surely, it will be cheaper
than prescription narcotics.
Copyright 2010 by Edward J.
Joyce

Edward J. Joyce contemplates
flashing cursors at CA Technologies where he is
a principal software engineer.
Comments may be submitted to
todaysengineer@ieee.org.
|