Site Archive (Complete)
C++ Blog: A whopper of a lesson in user-interface design, part 1
C++
void main(void)

Calls, Returns and In-Between.

by Kevin Carlson
SELECTIVE IGNORANCE

Finding the Signal in the Noise

by Andrew Koenig
August 07, 2007

A whopper of a lesson in user-interface design, part 1

A few months ago, I posted a note about a disk problem, and how, despite the designers' best of intentions, so many users couldn't figure out how to use the hardware that the vendor effectively behaved in a way that made the hardware irrelevant.

Well, that's nothing compared with what happened recently. Again, a frustrating experience turns out to have some lessons in system design--lessons that I think are useful enough to be worh reporting.

For some time, I had been using an old CRT monitor. It was huge and heavy, but it worked, and I figured that the longer I waited before replacing it, the cheaper the replacement would be. Moreover, one of my cats liked to sleep on top of it.

A couple of weeks ago, it started acting flaky: Every once in a while, the image on the screen would flicker and flash, accompanied by a crackling sound. I know enough about CRT monitors to know that the symptom suggested a problem in the high-voltage section, and I also know enough to realize that messing with the high-voltage section could well be injurious to my health; so I decided it was time to retire the monitor and buy a new one.

A few days later, the new monitor arrived. It was gorgeous! Excitedly, I hooked it up to my computer, started it up--and my stomach figuratively dropped through the floor when I saw how wretched the image looked. Scratch that: Images looked fine; it was just that any text on the screen was screwed up. The only way I can describe it was "smushed" -- letters were the wrong shape, partially overlapping, and almost impossible to read.

I've had enough debugging experience to know that the worse a problem looks at first, the easier it usually is to find. Indeed, in this case, the problem had a trivial reason: My four-year-old video card couldn't support the new monitor's full resolution, so it selected the largest resolution available. This resolution was not an integral multiple of the monitor's native resolution, so when the text was downsampled for display, it looked terrible. Of course, I could solve this problem by going to a still lower resolution, but what on earth was the point of buying a new monitor only to decrease image quality?

I thought for a while about returning this monitor and buying a smaller one instead--but first, I figured it would be a good idea to see what it would cost to replace the video card in my computer with a more powerful one.

So I went to my computer manufacturer's website. I told it what model I had, and it gave me a page with a list of recommended graphics-card upgrades. The card with the highest capacity cost only about 1/5 what the monitor had cost, so I figured that that card would work if anything would, and ordered it.

A few days later, the video card showed up, and I excitedly went to install it--only to find that it didn't fit. The connector on the card did not match any of the connectors on my computer's motherboard, even after I had removed the old video card.

That's when I started doing the research I would have done earlier, were it not that the manufacturer had recommended a list of video cards for my specific computer. I learned that there are three main ways of interfacing video cards to computer motherboards, and the particular one on my computer's motherboard did not match the video card I had purchased.

Lesson one: When you design a system that makes recommendations to your customers, you do more harm when you give incorrect recommendations than when you give no recommendations at all.

Lesson two: When you ask a vendor's website for recommendations, you may be able to save some time by verifying those recommendations for yourself.

So now it was off to my computer manufacturer's customer-service people to find out what I really needed and how to swap what I had for it.

To be continued...

Posted by Andrew Koenig at 10:36 AM  Permalink




 
INFO-LINK


Related Sites: DotNetJunkies, SD Expo, SqlJunkies