Before writing materials on technical aspects of testing, QA and management I decided to provide my vision of what can make any quality initiative bound to fail.
Vampire 1: Quality costs.
First of vampires is the notion that quality costs. Yes it does, but not in the way you may think. Just look at the best examples of the contemporary automobile industry. There are players on the market who provide a very different level of quality for the same money. Those who produce cars of better quality feel themselves more secure on the market. They also show better result financially, having sold more cars and having fewer warranty cases. Now ask yourself whether or not quality costs and in which way?
Right! This is not the quality that may cost you reputation, lost sales, and frustrated customers. This is the lack of quality solution that may make your business sinking.
So, before even thinking of saving a coin today by skipping important quality practices like design, review, unit testing, and the like, ask yourself whether or not it may result in heavier losses down the production line.
I tell you from my own experience. All the compromises we make today will hit us tomorrow. Insignificant time we won cutting design or test review may cost complete module redesign or missed defects.
In the famous quality/resources/feature triangle quality is the most important! You may change the other two as you need to fit your business goals.
Vampire 2: This is not possible to produce software without defects.
The phrase itself makes sense. The problem is how people tend to be using it. Some developers use it for the excuse and take making defects in code too lightly. I am a human, I make mistake. So, who cares? This is a bad-bad habit in the software industry that is easy to accommodate but hard to get rid of.
Developers like any other kind of workers make mistakes. This is true - It’s ok until they learn from those mistakes. We learn it from the childhood that making mistakes is bad. Those of us who make more mistakes than other are valued less. They have fewer career opportunities and earn less money than those who produce high quality results. But both are humans. The difference is how they feel about making mistakes.
One may say that it's ok, because I am a human. Another will ask himself: “what can I do differently in order to avoid making these types of mistake in the future?” This is a completely different story, thinking that way.
So, the phrase itself is true, however do not let it misguide you. Always analyze your mistakes and learn from them.
Vampire 3: Everyone can do testing; it's easy.
This is the strangest misconception I ever met! Who decides? Usually I hear it from people who never practiced software testing. So, they cannot provide arguments if asked a simple question: why?
Testing is a big knowledge area. It takes several years to grow into software testing professional. Being professional in testing and development is beyond human possibilities. Testers are not looser-developers. Just look around. These people have chosen testing deliberately because they like it. Of many testers with whom I worked, only few were wannabe developers.
So, let's stop talking flame about who is more important for the success and get back to job!