The Meaning of (Software) Quality

Introduction

I had just finished reading a bedtime story to my young son, but before putting up the book I flipped a few pages to see what was coming up and came across a nice full page COLOR picture. Keep in mind this book is an original 1950 edition of Uncle Arthur’s Bedtime Stories. In 1950 color was not an easy or affordable technology. The color photos were carefully chosen and strategically scattered—one every few chapters. My son and I paused to take a look at the picture before putting the book up.

Color photos are a dime a dozen now.  I get fancier printing on credit card offers. Yet, a slightly grainy 58 year old photo still had the capacity to engage. It was something extra that had been put into the book on purpose to make the book extra special. In short, it had quality.  Quality that was still obvious 58 years later.

Quality in Software

Of all the traits we strive to put into software, quality is one of the hardest. Merriam Webster defines quality as “a degree of excellence”. But excellence at what? At the most basic level quality is a measure of functionality.

Base Definition: Quality Products are Accurately Specified and Match the Specification

That doesn’t necisarrily mean a formal set of “design documents”. However, every software system needs to have a clearly defined purpose and it needs to actually work! We spend a lot of effort on this—requirements analysis, use case analysis, unit testing, regression testing, etc. And for good reason.  If the software “doesn’t work” it will never achieve anything. However, once we’ve satisfied this basic level of quality we should move on to a higher quality.

Advanced Definition (Inherits Base): Quality is the Delivery of Exceptionally Meaningful Features

This is “fuzzy” and “illogical” and that’s OK. A good illustration is the classic Star Trek tension between Mr. Spock’s Volcan “logic” and the “illogical” humanity of the rest of the crew. Software is typically approached with a Volcan perspective–which is OK when defining specifications and testing logic.  But software is for humans. It’s the human quality that allows iTunes to realize that when I put a music CD into my drive it means I want to rip it. (Media player thinks I want to click on the “CD” tab and then click the “RIP CD” button)  Microsoft misses from time to time on the human level, but it has made some hits.  When Word started suggesting spelling corrections as a right-click mouse button option I was overjoyed–no longer did I have to wait and spell check the entire document and loose my sense of context.  I could correct my mistakes immediately, in context, as if they never happened. I still feel a sense of liberation each time I zap a misspelling. 

Summary

Quality is a two sided coin.  Quality is about accuracy, but it’s also about emotion.  Quality software must work.  But it also must give something meantinful to the lives of the people that use it.  “Meaningful” may be “fuzzy” and “illogical”, but it’s what divides the accurate from the fantastic, the good from the great.

Advertisements

7 Responses to “The Meaning of (Software) Quality”

  1. oliver Says:

    A bit offtopic maybe, but I was wondering about the “iTunes realizes that when I put a music CD into my drive it means I want to rip it” part.
    I never used iTunes, but noticed a similar behavior under Ubuntu, where a CD ripper appears when inserting an audio CD… This has always annoyed me, as I expect the CD to be played when I insert it. Do you actually more often insert CDs for ripping? Just wondering whether my view of the use-case here is skewed 🙂

  2. Andrew Lighten Says:

    I’m not sure that I agree with you here. Quality is about accuracy and fit-for-purpose, not about pizzaz and dividing the good from the great. They’re certainly attributes that need to be present for software to succeed, but I don’t think that their presence indicates quality.

    As an aside, my bro-in-law and I were talking about quality just the other day. He pointed out that if you give someone an example of two cars — a Rolls Royce and a Toyota Corolla — most people will immediately consider the roller to be a higher quality vehicle. However, if the Corolla has fewer faults it does its intended job better than the Rolls so it’s a higher quality product.

  3. alvaro Says:

    It’s funny Oliver, but I thought the same about the ripping example. Besides, I absolutely, positively HATE Word’s “suggestions”. It’s one of the first things I deactivate when installing a brand new Office.

    I guess every user has his own quirks 🙂

  4. Top Posts « WordPress.com Says:

    […] The Meaning of (Software) Quality Introduction I had just finished reading a bedtime story to my young son, but before putting up the book I flipped a […] […]

  5. alepuzio Says:

    The problem of quality is that the boss understand about “emotion” not as “We’re doing a good thing”, but only as “faster as better”… My God…

  6. Barney Sperlin Says:

    Two non-computer books about the nature of quality: “Zen In The Art Of Motorcycle Maintenance” discusses it but a satisfactory description is left for the sequel, “Lila”, both by Robert Pirsig.

  7. Steve Campbell Says:

    I think quality probably has more sides than a coin. For me, quality usually means that something can stand the test of time – it will work as well a year from now as it does today. (The period of time differs for different types of products – I expect my car to work for longer than I do my PC).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: