In Software Development, quality is a must. Every company, from start-ups to market leaders, seek for deliver quality. But the real question is, what quality means?
Quality? What Quality?
According ISO, quality is:
“The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs”
And it is a very comfortable definition. Only problem is that cannot be used directly to measure the quality level of a working piece of software.
So, some extra work is required. First, I will remove the “or service” part, since I would like to talk about Development.
Business, Process and Product Requirements
For each of us dealing with Software Development, it will sound familiar to say that “stated or implied needs” is an abstract way of naming the Requirements.
So, simplifying the ISO statement, we could say that quality is:
“The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs Requirements”
Now is crystal clear, isn’t it? (If your answer is ‘yes’, please stop reading this post)
Improvement areas
There are several classifications for the features and characteristic of a product, but I like the ISO 9126:1991 way:
- Functionality: A set of attributes that bear on the existence of a set of functions and their specified properties. The functions are those that satisfy stated or implied needs. (ISO 9126: 1991, 4.1)
- Reliability: A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time. (ISO 9126: 1991, 4.2)
- Usability: A set of attributes that bear on the effort needed for use, and on the individual assessment of such use, by a stated or implied set of users. (ISO 9126: 1991, 4.3)
- Efficiency: A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions. (ISO 9126: 1991, 4.4)
- Maintainability: A set of attributes that bear on the effort needed to make specified modifications. (ISO 9126: 1991, 4.5)
- Portability: A set of attributes that bear on the ability of software to be transferred from one environment to another. (ISO 9126: 1991, 4.6)
What is Quality all about?
Drilling down into the definition of quality until something meaningful happened is far from easy. And the main issue about it is due to the fact that quality is a perception. One single attribute cannot define quality by itself. Deliverance of zero-bug software is a major objective but it cannot be isolated from the rest. A Java function doing nothing will accomplish the goal.
The idea then is to gather as much information from different sources, seeking for a comprehensive list of requirements to fulfill. And, after that, negotiating priorities according Company strategic goals will lead us to the next level.
In next posts we will start the process that (hopefully) will significantly improve current quality level