In the last post, we talked about how users can contribute to SQA processes in FLOSS. That somehow brought up the idea that SQA means different things depending who is doing it. In this post we try to better define the different understandings of SQA.
Kitchenham and Pfleeger (1996) characterize software quality as an elusive target and, basically, software quality can be split into product quality and process quality, yet this helps little as numerous quality targets can be found for both.
To provide a more holistic understanding of different approaches we summarize here Garvin’s views of product quality (Garvin 1984):
- Transcendent approach comes from philosophy. The definition that Garvin quotes is that quality is synonymous with “innate excellence”. Garvin continues: It is both absolute and universally recognizable, a mark of uncompromising standards and high achievement. This approach sees that quality is like beauty. You know when it’s there yet it cannot be exactly defined. (More info according to Garvin: R.M. Piercing Zen and the Art of Motorcycle Maintenance, Plato’s discussion of beauty)
- Product views see quality as a precise and measurable variable. Quality only reflects the differences of the desired variable. For example, high quality pizza has high quantity of cheese, and high quality hammer can take high number of hits before breaking. Unambiguous ranking is however only possible if all agree on the desired variable.
- Quality differences can be seen as differences in quantity
- Higher quality objects are more expensive to make, as there is a cost in increasing the amount of a desired variable
- Quality can be assessed objectively and is based on more than preference alone
- User based view highlights the end-user as the final judge of quality. In this view “quality lies in the eyes of the beholder”. A high quality product is the one that maximises satisfaction. Problems:
- How to aggregate widely varying individual preferences so that they lead meaningful definitions of quality -> High quality products are the ones that meet the needs of majority of consumers.
- How to distinguish those quality attributes that connote quality from those that simply maximise consumers’ satisfaction.
- Consumer may regard one product as higher quality than the other, but still choose the latter because a consumer enjoys its unusual features or taste.
- Manufacturing, or more appropriately for software development, engineering views, highlight good engineering and processes. The manufacturing view is mainly based on good engineering and manufacturing practice. All of its definitions see quality as “conformance to requirements”. It also incorporates the idea of “making it right the first time”. On the design side, this view has led to reliability engineering and in manufacturing side on statistical quality control. Both of these techniques focus on cost reduction with the idea that preventing defects is cheaper than reworking on them. Testing is important in preventing false part entering the market. False network interface in a laptop will increase the cost greatly if installed and delivered to customer. It is often cheaper to destroy all the parts that are assumed to be defective than to let it enter the market.
- Value based view highlights quality in relation to the cost. Quality product is one that provides performance or conformance at acceptable cost, e.g. “affordable excellence”.
It is important to understand that there are differences in views to software quality among people in different roles, as exemplified in the table below. However, it is more important to have some sort of agreement in a company what quality means and what the quality objectives are. So, what is your viewpoint in software quality?
|Value||The CEO may think mainly in terms of the value based view. She always thinks of software quality with relation to its cost.|
|Manufacturing / Engineering||Quality assurance and process managers often think terms of the manufacturing view. Thus, they highlight good engineering practices and process conformance.|
|User||The usability people would mainly be interested in developing quality with relation to user experience.|
|Product||The financial officers can think through the product view, e.g. our server performance needs to improve 5%.|
|Transcendent||Finally, the transcendent quality may be represented by Steve Jobs type of personality, who personally is the final judge of the quality and demands it everywhere. For example, Steve Jobs required that the internal hardware architecture of the Apple products must be beautiful to the eye, even when a regular user would never see it and even if it did not make sense form the engineering viewpoint.|