Many definitions of the quality exist. The software industry is an industry. The definition of the industrial quality is:
A quality product corresponds to the requirement press out by the customer. It isn’t the best product, it’s the product asked by the customer and the users.
The essential idea is the quality is not Excellency. A requirement of the customer can be the life term of the product.
When we make software, we have two main methods: the V Cycle and the Agile Methods.
A project which is realized with the V Cycle method use 6 ordered steps to complete the project:
· The needs analyze
· The specifications
· The realization
· The tests
· The delivery
The quality is controlled at the end of the process and concerns the entire project. Often with the delay on the project, few tests are done. These tests concern the needs describe in the beginning of the project. For the projects which need more than 3 months of work, they consider a need which is partially changed. The project quality depends on the perfect success of all the step.
For the Agile Methods, the situation is different. One of principles is to adapt the software to the consumer need during the project. Consequently, the requirements in the beginning of the project can be different of those for the delivery. In this way, the project can’t be a quality project.
The practice of the actual quality is to manage and to complete the definition of the quality with the change of the need during the project. A manufacturer built a production line for a car, use it, and adapt it during about 10 years. During this time, the norm, the law and the public taste change. It is therefore necessary to adapt original requirements to these new requirements. Yet, the cars verify the constraint of the industrial quality. In the industry, the quality is organized in step and must be verified for each component and their assembly and for the final assembly.
This approach allows seeing that the Agile Methods verify the industrial quality much better than the V Cycle. One of the foundations is the Test Driven Development. Each software element is tested and the tests are executed for each change. The tests concern the objects, the stories, the features and the software performance. In other hand, at the end of each sprint, the delivery is a quality software even if it is a partial software. For the Agile Methods, the idea of beta tester doesn’t exist. An informed user or a super user replaces it. This user is a person who knows well the job and also preferably the IT. He can use the partial delivery and can give judicious advice about the change to do. His function isn’t to discover the bugs of the software but to show the improvement which is going to allow realizing the product the most adapted to the needs of the customer and the users.