Quality Is the Difference

“I’d rather drive a Pinto that works every day than a Lexus that always breaks down,” said an unsatisfied customer of a company that delivered a product plagued with quality problems. For him leading edge was less important than quality, or to put in other way, leading edge features that don’t work is like not having the features in the first place. That’s true for most customers.
It appears that the software development community believes that customers have a high tolerance for product defects. How else can you explain the low quality that we often experience in the software products that we purchase? I’ve often written about my experience with video editing software where it was difficult to find a product that could compile an edited sequence successfully. Essentially, many of the video editing products at the time could not reliably complete the primary function for which people purchased them: compile sequences to a single AVI file.
Consumer Product Experience
What if you experienced similar quality in other products that you purchase? What if you purchased a toaster that always burnt the toast? What if you purchased a lawn mower that was difficult to start? What if you purchased a car that frequently broke down? What if you purchased new furniture with an obvious blemish? Most of us would find this level of quality unacceptable unless, maybe they are steeply discounted. But not in all these cases. If you always get burnt toast, you’d want your money back even if the workaround is to use a timer and manually eject the toast when enough time has elapsed. It sounds preposterous to even suggest that workaround is acceptable, but we often ask customers of our applications to accept similar preposterous workarounds for our software defects.
Now what would be your impression of the engineering team if in addition to all these defects, there are obvious misspellings and grammar errors in the on screen text, error messages, and product labels? I bet your reaction would be similar to mine: of course the product doesn’t work, these people are incompetent. They can’t even spell or write good English.
Workaround Defects
During the heat of a fast paced release, there is often pressure to defer fixing defects to future releases. If the defect has some functional workaround, we often rightly lower the defect’s severity. Defects with no workaround are obviously more severe than defects with a workaround. However, this becomes dangerous when it’s argued that it is acceptable to release the product with broken features having a workaround.
To bring some more clarity to the decision to release with or without the fix, it helps to draw some analogies to problems in other products that we use. For example, if we have a feature in our software product that sporadically does not function and the workaround is to try it a second or third time to get it to work, would we find similar behavior in our new car to be acceptable? If we purchase a new car and the radio would sporadically turn on or turn off when you press the power button and the workaround is to smack the radio hard once between the volume control and the tuner control, would you find that acceptable? You’d want it fixed, and you’d be darn mad, right? If we’d find the analogous workaround unacceptable in other products that we purchase, chances are that our customers will find it unacceptable in our software products too.
Cosmetic Defects
Another source of deferred defects is cosmetic defects. Maybe a button isn’t in the right place, a message box has misspellings, or an edit control is too short. Often these are rightly assigned low severity. None of these prevents the functionality from working, but they make the product look bad. If we release with any one of these defects, we likely would get away with it. What if there were a thousand of these low severity defects? Can you still safely release?
Let’s make the automobile analogy again. Let’s assume you go to the dealer to pick up your new vehicle. You walk around the car to inspect it making sure there aren’t any defects that would prevent you from driving the car off the premises. As you walk around, you spot a minor surface scratch. Would you still drive off with the car? Most people would, but I suppose a very small minority would not. Now what if there were a large number of these surface scratches all over the vehicle and when you look at the vehicle from differing angles, the scratches noticeably detract from the new car finish and make it look unsightly. Would you still drive the care off the premises?
Leave a Good Impression
The release date nears, and you have to decide whether to slip the date or release as planned. The team decides to release as planned with all the open cosmetic defects unaddressed and all the open feature defects with workaround solutions unaddressed. If your customers rarely discover these problems, then you made the right decision to release. On the other hand, if your customers are discovering problems frequently and becoming frustrated with using your product, then you made the wrong decision. What impression do you think your customers will have of your team when in addition to all the defects preventing them from using your product successfully, the product is littered with many spelling and grammar errors? Does the word professional come to mind?
Quality Matters
I read it in the blogs. Many writing about software practices believe that quality is a trade off - especially if we are developing leading edge technologies, but really it isn’t. Do you believe the astronauts of the space shuttle, a leading edge technology, have high expectations for quality? How about the taxpayers of the space shuttle who are shouldering the funding for the program? Do they find it acceptable to see their hard earned tax dollars destroyed in a disaster along with the precious lives of the shuttle astronauts? While it’s difficult to prevent all disasters, we are more likely to have disasters when we have a casual attitude towards quality.
Even if your product reliably performs as advertised, do you still want to leave many cosmetic defects open in the release? If there are enough cosmetic defects, it’s still going to leave your customers with a negative impression of your company and the team building the product. What is the image of the company and the team that you want to communicate? If the image you want to communicate is a company that has top talent and aims to deliver high quality and the best user experience, you better fix most of those cosmetic defects. If you have lesser objectives, well, you can leave most of those cosmetic defects present.
Summary
As a consumer I value high quality. When a company develops a reputation for high quality, I am more likely to purchase their products, and once I own their product, it’s difficult for me to switch to a competitor. I can think of a number of once famous leading edge technology companies that failed to deliver leading edge quality. Most of those companies that I’m thinking about right now are no longer in business, or they are struggling to survive. I was never a repeat customer of any of their products. I often replaced their products quickly with a competitor’s.
When you are prepared to release with defects having a workaround, put yourself in the customers shoes; ask yourself, would I be satisfied with that workaround? Would I be satisfied with an analogous workaround in any other consumer product? When you are prepared to release with many cosmetic defects, ask yourself, what image would I have of the team and company if I were a user of this product? How would I react with analogous cosmetic defects in any other consumer product? Chances are your customers will react similar to you. It’s best you fix them if you want to keep that customer
In software, where high quality continues to be uncommon, high quality is a competitive advantage. Yes, delivering high quality takes time, but in my experience, low quality always takes longer and costs more. As I see it, focusing on quality is a win-win strategy: it saves time and money, and it creates a positive reputation for your products and your company. Plus, your customers will be loyal for it.

