When we talk about quality in software,this concept of software quality,is not always easy to define.
Quality is associated with characteristics of excellence or superiority, resulting from a comparison of attributes in the context of evaluation.
We are, most of the time, aided by our own sensory receptors, which channel precious information to the brain. That’s how we decide if we’re looking at “something of quality.”
In the physical world in which we live, the appreciation of the “quality of things” results, almost always, in pointing points. These refer us to “quality standards”, more or less credible, based on past beliefs and/or experiences.
How to evaluate Software Quality?
The vast majority of the population is now a softwareuser and tester, which is made available tous through appliances, smartphones, tablets, smartwatches,cars, computers, etc. and which we use in our daily life intensively. We are the first to make changes on the quality, usability and aesthetics of the equipment we have.
In the automotive sector, where software has become the protagonist, it is common to state that: “Premium brands produce high quality cars”. This generalist statement is based on a quality perceited by different users in relation to multiple attributes of the vehicles, including the software that today allows the control of the vast majority of the components of the car.
SIt is opinions of this kind that make us believe that the cars of these brands follow strict quality standards, being the end result effectively good. It is relatively common, in the assessments we make on the quality of things, to be influenced:
- by society;
- for powerful marketing campaigns;
- preconceived images of credibility.
Who has never made an assessment based on these criteria, who “throw the first stone”.
Different approaches to Software Quality Assessment
The challenge is how to evaluate in a less tangible world, which is “quality”.
There are specific processes and models that, when applied in the Software Development Process, provide a greater quality assurance to the final result.
However, the perception of software quality depends heavily on the point of view and expectations of each group of stakeholders.
… for the User
For users, the quality of the software is determined by simple criteria. To be classified by this group as a quality software, it is necessary that:
- Fulfill the goal for which it was thought;
- Maintain adequate performance;
- Have an appealing and practical graphic design from the point of view of usability.
If you do not guarantee these criteria, it has no quality.
… for Technical Teams
Technical teams basetheir quality assessment of softwareon other criteria. They do so according to:
- The architecture of the solution;
- The quality of the code;
- Of the code patterns;
- Good practices and security.
When software production does not follow good practices, it will always be associated with low quality levels.
…. for Quality Teams
On the other hand, quality teams have a more holistic view and carry out a factual assessment. This type of evaluation is made whatever the type of requirement (Functional, Non-Functional, Technical,Safety or UX/UI) comparing Expected Behaviors with Observed Behaviors. When a software obtains good results after being subjected to test batteries, with automation and regression, by default it will always be considered a software with quality.
… for Maintenance Teams
Finally, maintenance teams ascertain the quality of the software according to attributes such as:
- whether the code is documented;
- if there are records of the actions (logs);
- if the solution is reliable and stable.
In a way, this type of software evaluation verifies that the solution meets the requirements that allow its maintenance and evolution.
Software Evaluation: unity in diversity
As in our physical world, in the software there are brands such as Apple, Google, IBM, Microsoft, among others, which, due to their reputation and the quality of the products they make available to the market, are considered “premium brands”of the information technology sector.
As we could see, the characteristics valued by each group in software evaluation are something different, but never divergent. In the end, the software produced will have to exceed the expectations of each of these evaluator groups in order to be considered a quality software.