In the early days of computerssometime after the invention of the abacus but before you could buy a computer next to automotive supplies at K-Martthe 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 computers concern. 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-its-on/maybe-its-off cacophony of video and audio, touch screens, and voice commands, among other interactive media. Computer geeks gush giddy over these rich interfaces for building software, but the final products often leave end users in the poorhouse.
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
Nice idea, except when a broken user interface sets out to etch the hourglass on your screen for 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 lottery 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 weeks 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, its 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. Thats 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%.
Or, having reached 100%, it may decide it has earned a sabbatical and the program pauses for a period exceeding a Super Bowl half-time before unceremoniously exiting.
Entering a Date?
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 September 14? 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 youre Christopher Columbus.
While we may never know what team of experts decided on the whole-date-and-nothing-but-the-whole-date scheme, its 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 displays 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 spacesINPUT 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 and. . . (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 youre 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, mothers maiden name, fathers maiden name, daytime telephone number, evening telephone number, afterlife telephone number, email address, verify email 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 4,196-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, youre sure that youre 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, its 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 theyre 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 developers (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, wont 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.
Edward J. Joyce contemplates flashing cursors at CA, Inc., where he is a principal software engineer.