Where Does The Customer Fit In Quality Control?
How many times have you, as a customer, felt like a Quality Control Guinea Pig when you’ve purchased a product? More and more it feels like companies are in such a rush to get product out the door, they fail to think about the customer. Or, maybe more to the point, they fail to respect the customer.
Though we do see some of this in physical products, it is much, much more prevalent in software. Think about it. When is the last time one of your apps updated, but you didn’t see anything different? It happens all the time. In fact, the process has become so wide spread and frequent that most phones, for instance, don’t even tell you when updates are occurring.
The Security Update Excuse
It’s nice that software companies work to improve their products. New functionality and new features are always fun, but that’s not what we’re talking about. It’s also nice that companies work on killing bugs, but why are we, as customers, the Quality Control team?
I am getting really tired of the “security update” excuse and the related fear mongering that software companies are spreading as a way to hide the fact that they did a crappy job. It sounds like they’re protecting you, but if they have repeated “security updates” it really means they don’t properly check their code first. More importantly, it means they are purposefully releasing software that is not tested. This, puts you and I in jeopardy simply because they are too lazy to figure it out prior to release. It says they are willing to sacrifice our security to avoid doing their job properly.
Wow! Those are strong statements. Oh, and they are obviously over generalizing, but there is truth in them. I don’t believe it is deliberate — as in they are purposefully making security holes — but, neglect is only a whisper better.
Just after the WWII era, Quality Assurance and Quality Control came to the forefront in manufacturing, lead in large part by an American, but not so accepted by Americans. Japan, on the other hand, listened and eventually started to clean our clocks with superior quality in their products. As you may know, US manufacturers worked hard to catch up and QC (short for Quality Control) quickly became part of everyday language. Over the years, we have all come to understand quality, and expect it.
Unfortunately, the principles of statistical process control don’t translate directly to software. Yet, there are methods and there are specialists that build quality metrics for software. These folks are far and few between, and they are not normally working for the mass of small software companies.
In the days before the ever-present internet, software came on disks. It was much more carefully checked and tested before it was released. The days of floppy disks are thankfully gone, but ever present connectivity has brought back the early 1900’s attitude of “slap it together”, but in software. For example, the Model T changed the world, but early cars were a hassle to keep running. Are we now in the software equivalent of that era in the way we feel about quality?
Are we as customers so eager for new software that we’ll accept bugs and willingly expose ourselves to security threats just to have it right now?
An Industry Quality Control Problem
There are problems with big companies (like this example) and small ones. Perhaps the biggest problems are in the newer branches of mobile apps and web development. The very low barriers to entry in the software world make it easy for a few folks with a good idea to make something and release it to the market in mass. It works for them, so it must work for everyone — Right?
In fairness, some outlets like the Apple Store do have standards that producers must meet, which certainly helps, but there are other areas — especially in the website software arena — that have no systematic quality control. A good marketing campaign and a beautiful presentation on the surface are all too much like looking into a casket. You might not like what’s under the surface.
Also, in fairness, not all startups or web-ware companies have a cavalier attitude about quality control. Ask most, and they’ll say something about how important it is. Hat’s off to those who really try, and those who accomplish it. Yet, even the companies with a focus on quality control, like MickySoft for instance, struggle. The evidence is the constant updates and continual fixes.
Again, I admire the attempts and the work that goes into those constant updates, but the updates are, in themselves, evidence of a missing understanding. And, I’m sure the reasons for it are as varied as the products they produce.
When a customer puts the money down and installs the software, it puts them in a committed position. Take web-ware for instance. Sure, customers can change software again later, but it’s not like buying a new toothbrush and just tossing the old one. A website takes a ton of work (and cost) to implement. Changing platforms or theme bases or shopping carts is no trivial matter, so it’s particularly frustrating when the software company does not show respect for their customers by thoroughly testing. If a website breaks because an update is not fully tested, that’s just stupidity. Unfortunately, that’s becoming more of the norm. Our experience indicates that software companies don’t have anywhere near the commitment to their customers that customers have to the software.
Seriously, those of you that write software, PLEASE familiarize yourselves with Quality Control Methods and start using them. Show some respect to your customers — the very ones that allow you to be in business.
In a recent example, a problem occurred on our website because of a new update. (Similar problems have come up many times.) In this case, I was quite happy the software company was very responsive in their support — but really, if they can make a fix, update the software and release a new version in a couple hours, they have not done thorough quality control. The fix for my problem could just as well have broken something for another customer — just like the last minor update that broke things for us. Though it seems good on the surface, the mantra of super quick response to problems (for this industry), is horribly short-sighted customer service.
The answer is a thorough quality control process that every version completes before release. Yeah, that makes them less responsive to customer problems because it takes more time to fix things, but really, it keeps most of those problems from happening in the first place. So, Which is better?
I often wonder as I look through lists of “Fixes” for new software updates: What are they thinking? I notice too, the dates of the releases. (Some companies hide the dates to mask the embarrassment, but it’s just the same.) Often, it’s a long list of “fixes” every few days until their new version becomes stable. That means dozens of customers in hundreds of hours of frustration because the software company failed in Quality Control. If nothing else, it dims my view of the company and of those who run it.
What Comes Around …
Many years ago, Hewlett Packard had a slogan they used internally. “Quality is FREE if you do it right the first time.” I espouse that saying, and I suggest every product oriented company — hard or soft — put it up on their walls.
It is virtually impossible to write bug free code, I know. However, implementation of careful Quality Control processes will find most of the bugs before the customer gets them. That means a better reputation and happier customers. It also means customers are more likely to come back, tell friends, and all those other good things. Why build a business on anything less?
Oh, and just for the record, it’s not only software products that need to think carefully about the customer. You don’t want them asking “What Bonehead Designed This?”
Note: For an interesting twist, read Michael Lim’s article “The Role of Software Quality Assurance is NO longer about TESTING or QUALITY!” The content of his article is only a piece of the puzzle, but I really appreciate his out-of-the-box thinking about software quality control.