ChipCenter Questlink
SEARCH CHIPCENTER
Search Type:
Search for:




Knowledge Centers
Product Reviews
Data Sheets
Guides & Experts
News
International
Ask Us
Circuit Cellar Online
App Notes
NetSeminars
Careers
Resources
FAQ
EE Times Network
Electronics Group Sites

EE Expert Hank Wallace
Electronics Design

Click Here to Go to the Electronics Design Archive Main EE Expert Button

The Illusion of Quality
Part 2: Computer Programs

by Hank Wallace

Likely the biggest offender in this regard is the graphical user interface. I'll pick on Microsoft since I haven't used an Apple since Lisa. Apart from the endless stream of useless "features" in the operating system, let's discuss writing programs for Windows, since many readers are programmers.

Hold your stomach for a moment while I reminisce. I started programming on 8-bit machines running at about two megahertz. At that time, producing a program that would run on multiple computers was a chore. Each computer had different video terminals and printers, as well as nonstandard internal hardware. Shrink wrapped programs came with a plethora of printer and terminal drivers, and sometimes they worked. It was not possible to write a program and assume that it would run on an SVGA monitor with an HP compatible printer.

Today, that is possible. The operating system encapsulates the quirks of each device so that, for the most part, the programmer can ignore the details of the printer and display. What a blessing! What a curse! Huh?

Barrier to Entry: A Blessing
Way back when (in the good old days when I walked 5 miles to the computer store barefoot in the snow), writing a production quality program entailed many hours labor on printer, plotter and terminal drivers. No one could just slap something together and sell it. There was a barrier to entry.

Now, however, it is easy to write a program that will run on just about any PC. I assume the same is true in the Apple world. In fact, packages of library widgets are available for Windows programming that lend some neat user interface features to your work without an ounce of effort. That means my programs can look just as good as anything coming out of Microsoft—but they don't have to really work! (Well, the programs coming out of Microsoft don't really have to work either, but that's another discussion.)

The result is that many of the programs I have purchased are garbage. How about the drafting program that had so many rounding errors in internal calculations that no two lines could be made to meet? Or the popular word processor that crashes my formerly stable NT system on a regular basis? Or the disk defragmenter that crashes the computer before running to completion? Or the operating system that randomly boots to a crash screen 15% of the time? Any kid can write a program that looks great but works badly.

Wealth of Features: Quality NOT
A large cloud of smoke enhancing the illusion of quality is "wealth of features." By this I mean loading the product with features that a customer wants, but which may not work well or be in harmony with the whole. In the 1980's I purchased a printed circuit design package from a large CAD vendor. They were the best on the PC at the time. About every six months there was an update, and some of the features we suggested made it into the production versions. However, not many of the bug fixes did. With each release we received a long list of new features, some of which did not work, crashed our machines and corrupted prior designs.

I had a customer years ago who would call me every time his customer called him. "Hank! Can we add a demystifier to the discombobulator?" Sure, I told him. "Then do it!" After ten years of this, the layers of discombobulators, demystifiers, preturboretrofitters, reverse osmotifiers, and other gadgets reached Rube Goldberg proportions. Every feature any customer had requested was in the product, but no one knew how to use the product as a whole. Is this quality? Not hardly.

Wealth of features is one of the problems with Windows. A customer recently asked me to make an existing program compatible with an Access database. No problem, I thought. But then I found that Access uses at least two native formats, and can talk several others. Each API for database access in VC++ has pros and cons. Each of these layers of function had been added to the product for a good reason, but now it is impossible to properly select which features to use without spending time developing some code for each and trying it out. Feature bloat plagues the multimedia and user interface features of Windows, too.

The moral is that wealth of features is not equivalent to quality. Quality is each feature working well and not overlapping the functional space of other features. Quality is the exercise of restraint so that unnecessary features are not added to a product.

ISO 9000 and Self Delusion
Next time I'll illuminate the holy grails of quality for what they are: ISO 9000 and self delusion.

Recommended Link
Be sure to read EE Expert Darren Ashby's article, "Technology Woes"

Electronics Design Archive

Guides and Experts   Analog Avenue   EDA Tools   PLD   DSP   EDA   Embedded Systems   Power   Test
Click here to get your listing up.

Copyright © 2003 ChipCenter-QuestLink
About ChipCenter-Questlink  Contact Us  Privacy Statement   Advertising Information  FAQ