We all are!
I get a kick out of watching the news for “quality” issues – or should I say “lack of quality” issues! There are usually lots of them.
Someone recently told me that there is no difference between Quality Assurance and Quality Control. Seriously?
Sadly, its not the first time. In my not-so-humble opinion – most companies or organizations have absolutely no clue as to the difference between Quality Assurance and Quality Control. Even though Quality Control has been an out-dated practice for more than twenty years, I still find a “quality control mindset” on each consulting assignment. They may even call it Quality Assurance, but it ain’t. Lets look at the two shall we?
Quality Control(QC) is the traditional way of looking at quality. In a QC environment, quality efforts are usually tacked on at the end of a given process. Something is produced and then given to the QC folks to test and determine if the product meets quality standards. In the event a quality issue is detected (and there usually is), the entire product may need to be scrapped and rebuilt. Or, where it is practical, pieces or parts of the product may need rework. Then the whole production/quality process repeated until quality standards are achieved. If time is critical, its the quality process that gets the ax. Ultimatly, only the QC Team is held responsible for quality. A QC mindset is expensive. Had the problems been found earlier in production or even during the design process it would have been significantly less expensive to fix. Ask Toyota.
Quality Assurance(QA) on the other hand involves having an eye to quality at every level of the organization, throughout every process, by everyone involved in designing, producing and even using the product – be it a computer, or the software that runs it. With QA, quality isn’t saved until the end but rather looked at constantly – by everyone, not just testers. Its having what I like to call the “Quality Mindset”. The goal should be to identify quality issues constantly, throughout the process and adjust as neccessary (Controlling function of management) Finding and resolving issues early ultimately saves money! Sure it may take a bit longer to produce the final product and cost some money, but in the long run I think it saves money. Ultimately is produces goodwill and trust with the customer. Unfortunately, to the bean-counters, trust and goodwill are difficult to measure in terms of dollars and cents (or is that sense?).
If you’re Microsoft and control your market, you can slip up on quality (or customer service) and get away with it. You can make your products difficult to install or completely annoy your customers. Since there is no real competition, customers have no where else to turn. So the company can make you lose all of your installed software when you try to upgrade to a more expensive version of THEIR operating system. (Try upgrading from Windows 7 Home to Windows 7 Professional – you can’t. They force you to do a new installation. Not only do you have to reinstall all of your software, you also have to reinstall all of your drivers) Then they can get away with charging a small fortune to help you resolve the problem when you call customer support. What other option do you have? Why make me pay to use the more expensive version of YOUR product then charge me for assistance? Or for that matter – to use your product at all (see Microsoft Project). Because they can!
It is unlikely your company can get away with it. You need a quality product and you need produce it as inexpensively as possible. You probably have to compete in a competitive marketplace.
I like to get involved in any product development early. I know most of the pit falls and I can catch most of them early – hopefully before the first line of code is ever written. Will things slip by? Absolutely? As much as I like to think I’m perfect, I’m the first to admit that I’m not. I want to see all design documents, specifications, requirements, etc. I may find something really trivial – but its a lot cheaper to fix it now by running a spell checker than it is to fix it in the code, re-install it and re-test it.
Watch for the tell-tale signs. Listen for things like “We’ll catch it in test” or “That’s not important right now” or “Its someone else’s job to fix that – they’ll find it later”. You gotta love job security!
We all are!