Coping with imperfect users: Was: Suppressing carriage return in a form action??

by Berk/Devlin <armadill(at)>

 Date:  Thu, 05 Jul 2001 16:32:49 -0700
 To:  Chuck Evans <chuck.evans(at)>,
"'HWG Techniques'" <hwg-techniques(at)>
  todo: View Thread, Original
Here's a true story from my bad old programming days.

I'd been hired to maintain the Women's Tennis Association database, a beautiful application written in Fortran by an incredibly talented programmer.  The company I worked for, a medium-sized ($200 million???) business, had no other related applications.  Mostly, they did was market research.  

On the first Friday I worked there, my boss summoned me into his office.  His very round face was bright red and the hair that he usually kept combed over his very large bald spot was standing straight up.  It was as if he was literally tearing his hair.  I was concerned that he might be having a heart attack.  Believe me, no one gets that upset about the WTA database.

As I entered his office, he was yelling "That ^&%%$%$#!%$ Carol.  She hit the decimal point key again.  ^&%%$$#!!%$ her; she crashed the ^&%%$%$#!%$ payroll as she does every single ^&%%$%$#!%$ week!  If you don't fix this, you don't get paid this week and I don't get paid this week; NO BODY gets paid this week. ^&%%$%#$#_)!!%$   ^&%%$%#!!!%$   ^&%$%$#!!!%$"

It turned out that the payroll package, a home-grown affair, written in RPG, crashed whenever the data entry person hit the decimal point key.  And, this poor data entry person, Carol, hit the decimal point key at some point every, every, every single Friday.  

Now, this company had more than 2,000 paychecks to print every Friday.  And, the payroll system had no unwind capability.  So, regardless of where poor Carol was in the payroll process, once she accidentally pressed the decimal key, all the checks that had already been printed had to be destroyed and the entire payroll process had to be re-run.  

Sometimes Carol hit the decimal point twice or three times on a Friday.  Accidents happen.  Or, maybe it subconsciously gave her a feeling power.  

This is a true story, guys.

I did not know RPG and had no interest in learning it or in working on a payroll application.  I was not interested in getting Carol training or psychological counseling.  

So, when assigned this annoying but very important project, I did the following:

          I REMOVED the decimal point key from Carol's keyboard.  

This improved the reliability of the payroll process significantly.  It never crashed for this reason ever again.  

I had contemplated removing Carol's right pinky rather than damage the keyboard, but my boss pointed out that there are laws forbidding truncation of human digits.

Now, Klaas and Lois might cluck that by doing this, I was "coddling" poor Carol.  One might think that after 4 or 5 years she'd have learned better.  

But, frankly, I cherished my paychecks and my uneventful Friday afternoons spent adding cool functionality to the WTA database and sipping wine in the press box at WTA games while watching Martina Navratilova in her prime and it was clear to me that Carol was NOT going to learn better and she was NOT going away anytime soon.  And she was actually a perfectly nice, ditsy but otherwise-reasonably intelligent person.

Eventually, I did make some other changes to the payroll process, like implement an unwind and replace the homegrown software with something normal. 

In my previous lifetime, I also worked on software used by anesthesiologists to monitor brain activity.  I worried a lot about minimizing user error in that design as well.  

I guess it depends on our priorities.  My boss had obviously spent years and lost hair blaming "*^&%^%$$#$# Carol" and not dealing with the problem.  I don't have the emotional wherewithal to spend my time this way.


At 01:26 PM 7/5/01 -0700, Chuck Evans wrote:
>... Some web designers have probably never heard of field-level validation, but it's the standard for computer-based database apps (that is, those running on a client under Windows, UNIX, Java, etc.) to make sure bad data does not get into the system. And the idea that users should be fully aware of UI standard shortcuts (like tabbing between fields) is utopian but unrealistic. Dealing with "user error" is what UI Design and Usability are all about.
>Dang young whipper snappers!

~                            Emily Berk                                 ~
On the web at *** Armadillo Associates, Inc.      ~ 
~             Project management, developer relations and               ~
extremely-technical technical documentation that developers find useful.~

HWG hwg-techniques mailing list archives, maintained by Webmasters @ IWA