From a practical viewpoint, this should be Rule #1, since everybody who's ever done anything at all knows how large the idiot population really is.

While I agree 100% with you on this, this exercise was never meant to be a production item. It was meant as something for Nick to try out as a short term experiment.

To make a short story long, back in the early eighties I ran a small company that wrote software for DEC PDP-11 mini-computers. We had just finished a self maintaining parts/sales/service/accounting package for motorcycle and power equipment dealerships. One of the things we were most proud of was the UI. We had tested that to within a inch of it's life with every imaginable input scenario. It was rock solid and it had the capacity to learn. To reduce the error rate it would analyze the data being input and compare it to what had already been input and verified and suggest auto-completion hints. It really was an achievement. We even had one of a largest customers do beta, release and acceptance testing for 3 months. We did further acceptance testing with 3 additional clients. Everyone was impressed. It improved data entry speed and accuracy by huge amounts.

Shortly after we had put it into full time use at all our customer sites, I took a trip out to see how things were going at our biggest site. I was talking to the accountant about his impressions under actual use conditions and he told me that things were never better. He even told me that he figured out how to run the general journal batch update instantaneously! I was quite surprised at this as it would normally take about 5 minutes to back everything up, do a referential integrity check on the input data tables, commit all the transactions, run all the report transactions and get ready for the month-end adjustments. So I asked him how he did that. So he told me. "Just after selecting 'Update' from the menu I just hit the 'ctrl' key and the 'c' together. Then it flashes "Finished" for a second and returns to the main menu."

It turns out that there was about 10 seconds while the jobs were being submitted to the batch queue that it would accept a ctrl-C and abort the control file. He was essentially just quitting the process before it even got started. No one had imagined that scenario. No one even knew that the ctrl-C trap was being disabled during that short process. When we asked how he figured this out, all he could tell us was that he found it by accident. Luckily is was an accumulative procedure, and could be run as many times as you liked ... as long as it was run at least once before month end. We had to rewrite the UI to all disable input for that 10 seconds.