Hurry up and make it slower, already!

by Michael S. Kaplan, published on 2006/12/06 15:01 -05:00, original URI:

Some people go crazy about performance -- they want everything to work as fast as possible. But there have been a few projects over the years where great performance actually worked against the interests of the project!

I suppose the first time I remember seeing it (not in a project I worked on but that I used) would be the Windows Solitaire game. Whereas winning used to cause an amusing card bounce effect, the faster CPU speeds turned it into something else thst was frankly just weird. But looking to stuff I actually was involved with....

One of these projects (which I hinted about long ago in Performance gains at the cost of your own components) was the rewrite of the Security Wizard that was done in Access 2000.

You see, the old wizard was literally creating a new database and copying all of the objects into it. The copying obviously took some time, especially on large projects. But then we discovered that it was possible to change the workgroup ID of a database (which was the principal reason for the old mechanism of creating the new file, due to the conventional wisdom that the WID could not be modified).

The first prototype of the updated wizard was a beautiful design, right down to the Office 97 clip-art stick figures I used for the per-page graphics that caused real amusement at the demo!

But it had one terrible flaw.

You see, the DAO code that literally ran through every object, cleared its security attributes, and defined the new ones was so fast hitting the Finish button did not lead to a long enough pause to allow the user to think anything happened. And believe me, one time that you really don't want people to think that you didn't do the job is when you are securing something. The great performance led to a less satisfactory experience for the user!

It is actually just one of those real world "UI on top of an algorithm" issues one has to keep in mind -- that the ideal customer experience requires something to take just long enough for it it be plausible that the job was done.

And no longer, of course. Can't keep people waiting! :-)

The issue has come up many other times in UI pieces I have worked on -- the Partial Replica Wizard, the validation step in the Keyboard Layout Creator, and more -- all times where the tight, fast code actually worked against customer satisfaction....

This post brought to you by  (U+2607, a.k.a. LIGHTNING)

# Johnny Lee on 6 Dec 2006 3:58 PM:

We hit the same problem when Exchange was replacing MSMail at MS. People were used to having a window where the could stop a message from being sent in MSMail. That window narrowed to something less than humanly-possible reaction time when Exchange was rolled out (barring any network problems). I  created an extension that would slap a 'send mail in X seconds' property on all outgoing email. It took the Outlook team several years to replicate that simple feature...

# Erzengel on 7 Dec 2006 4:05 AM:

Sounds like something on TDWTF:

# Adam on 7 Dec 2006 4:26 AM:

ISTR a similar story about an old pkzip password cracker that did a differential cryptanalysis of the zip file to recover the contents. It was quick enough that people thought it was using some kind of trick to work, so the author put in a bunch of delay loops and everyone was much more impressed.

# Michael S. Kaplan on 7 Dec 2006 7:03 AM:

Of course, I did not bill Microsoft an extra $5000 to tweak the delays. :-)

# Bob Stine on 12 Dec 2006 3:37 PM:

Er, rather than adding a delay in the non-GUI code, wouldn't it have been at least as effective to had some sort of visual confirmation that something had happened?

In a way, this is the converse of the need for an "I'm busy" icon when the algorithm takes a while to respond, but both cases address the same human need -- to have a warm fuzzy feeling that the machine is actually doing (or has actually done) what you asked it to do.

# Michael S. Kaplan on 12 Dec 2006 4:20 PM:

A UI prompt that comes up too fast doesn't give people warm fuzzies that something happened, which actually does affect customer satisfaction....

go to newer or older post, or back to index or month or day