What is Quality Assurance (QA) in the software development world?
This one will be the most popular question,with the widest variety of answers, which by its own gives me a good reason to answer it.
So, I will start with dictionary(Wikipedia) definition:
Quality assurance, or QA (in use from 1973) for short, is the systematic monitoring and evaluation of the various aspects of a project, service or facility to maximize the probability that minimum standards of quality are being attained by the production process. QA cannot absolutely guarantee the production of quality products.
By large this is a nice definition, though it has two issues that need to be discussed further more:
1.minimum standard of quality.
2.quality of a product.
But before we go there let me say something about "assurance"
I have a friend in software development industry which used to treat Qa as a nice-to-have luxury, that means that only if he had an extra budget on specific project then, and only then, QA been hired pretty closely to the release date in order to execute some tests of the system. That approach gave him a really bad results, though he was all about blaming developers for not being good enough. In one of those BBQ conversations we had our Qa discussion, where I did my best to present to him my views on the subject:
"As you expect from the police force to be on the streets all the time to verify that the law is kept and to assure, us - citizens, that we will have an almost perfect and peaceful lives. The same way you expect that your Qa team will be there throughout your project to verify that you are heading toward almost perfect model of client needs and that quality is assured during the live of the project up-to a moment when it gets to the client"
Fortunately my friend agreed with me then though he had an expected question:
Assuring the quality "all the time" it's great, though it is a very costly process, how this quality assurance can be achieved in the limits of a project's budget?
To answer this question we have to go back to our original issues: minimum standard of quality, and quality of the product.
QA is all about achieving the maximum of quality in minimum of time. Now how we are going to do that? We should defined what the "quality of a product" is:
Quality of a product is how close we can come to the perfect model of client's needs.
Coming from that definition the "minimum standard of quality" will be dynamic thing which will be client dependent.
Some time ago I consulted a client that was building an e-commerce web site and what he needed is to have this easy-to-use, nice looking, smooth working web store. When we discussed with him his perfect model of his new site that was exactly what he told me:
"I want it to look nice, and to be assured that my web-store visitors will feel comfortable throughout their shopping experience, I want them to want to come back!".
For sure it was a great description of his needs, from client's perspective, but it's obviously wasn't enough information for a Qa person to work with.
So on the initial phase my job as QA consultant was to work with the client and extend the model of his needs by pointing out things like: there are different transactions methods for the credit cards, and different levels of hosing which will affect the security testing. More-to-that the functional testing should take into account decisions regarding the way the product should be presented, and how comfortable this presentation can be for the customers and many more.
Eventually after several meetings and discussions we came up with detailed perfect model that the client could be happy with. This model have been great source of information for the development team, and gave the QA team the required guidelines to plan the testing effort.
On the second phase of our effort we needed to determined what was that "minimum standard of quality" for that project. To do that we went through our new model again and marked how imported each feature is and came-up with a reasonable testing plan for each phase.
To summarize this subject Quality Assurance is all about verification that the product is as close as possible (from technical and budget perspective) to the perfect model of clients' needs.
Improve your Quality Assurance results, visit Broad Sky Inc
This one will be the most popular question,with the widest variety of answers, which by its own gives me a good reason to answer it.
So, I will start with dictionary(Wikipedia) definition:
Quality assurance, or QA (in use from 1973) for short, is the systematic monitoring and evaluation of the various aspects of a project, service or facility to maximize the probability that minimum standards of quality are being attained by the production process. QA cannot absolutely guarantee the production of quality products.
By large this is a nice definition, though it has two issues that need to be discussed further more:
1.minimum standard of quality.
2.quality of a product.
But before we go there let me say something about "assurance"
I have a friend in software development industry which used to treat Qa as a nice-to-have luxury, that means that only if he had an extra budget on specific project then, and only then, QA been hired pretty closely to the release date in order to execute some tests of the system. That approach gave him a really bad results, though he was all about blaming developers for not being good enough. In one of those BBQ conversations we had our Qa discussion, where I did my best to present to him my views on the subject:
"As you expect from the police force to be on the streets all the time to verify that the law is kept and to assure, us - citizens, that we will have an almost perfect and peaceful lives. The same way you expect that your Qa team will be there throughout your project to verify that you are heading toward almost perfect model of client needs and that quality is assured during the live of the project up-to a moment when it gets to the client"
Fortunately my friend agreed with me then though he had an expected question:
Assuring the quality "all the time" it's great, though it is a very costly process, how this quality assurance can be achieved in the limits of a project's budget?
To answer this question we have to go back to our original issues: minimum standard of quality, and quality of the product.
QA is all about achieving the maximum of quality in minimum of time. Now how we are going to do that? We should defined what the "quality of a product" is:
Quality of a product is how close we can come to the perfect model of client's needs.
Coming from that definition the "minimum standard of quality" will be dynamic thing which will be client dependent.
Some time ago I consulted a client that was building an e-commerce web site and what he needed is to have this easy-to-use, nice looking, smooth working web store. When we discussed with him his perfect model of his new site that was exactly what he told me:
"I want it to look nice, and to be assured that my web-store visitors will feel comfortable throughout their shopping experience, I want them to want to come back!".
For sure it was a great description of his needs, from client's perspective, but it's obviously wasn't enough information for a Qa person to work with.
So on the initial phase my job as QA consultant was to work with the client and extend the model of his needs by pointing out things like: there are different transactions methods for the credit cards, and different levels of hosing which will affect the security testing. More-to-that the functional testing should take into account decisions regarding the way the product should be presented, and how comfortable this presentation can be for the customers and many more.
Eventually after several meetings and discussions we came up with detailed perfect model that the client could be happy with. This model have been great source of information for the development team, and gave the QA team the required guidelines to plan the testing effort.
On the second phase of our effort we needed to determined what was that "minimum standard of quality" for that project. To do that we went through our new model again and marked how imported each feature is and came-up with a reasonable testing plan for each phase.
To summarize this subject Quality Assurance is all about verification that the product is as close as possible (from technical and budget perspective) to the perfect model of clients' needs.
Improve your Quality Assurance results, visit Broad Sky Inc
I like the general idea but i completely disagree with the police style approach. QA people are not policemen, they just do verification of the software...
ReplyDeleteHey, I think there is no such thing as "perfect model of clients needs", and you can't even get close to such a thing as this is unreal!!!!!
ReplyDeleteHey Ferry, for sure QA should guard the development process thats why I see them as policemen of the industry, let's call it more metaphoric approach......
ReplyDeleteMohad,
ReplyDeleteEvery DREAM is unreal but we need them to create our goals that what moves us forward, that exactly the idea of "Perfect model" to create such goal...