Software Quality

Time to start with an actual mastery topic! So, in the following blogs, there are basically four sub-topics to follow:

  • Defining Software Quality
  • Focus on process
  • Ensuring Software Quality
  • The role of standards in Software Quality

What is software quality?

By definition, it’s the field of study and practice that describes the desirable aspects of software products. What do we mean by this? We can put it down as the part of software development dedicated to improving and designing all software products, trying to establish the minimum of what’s required in it.

Software Quality Assurance (SQA) ensures how we handle the quality in the processes of a software product, establishing and evaluating all of these in a “process-focused action”, so that in the end, we end up having a product completely functional, with the basic minimum quality being accomplished in all cases, and a happy user in most cases.

The challenge in ensuring quality

In this industry, even if we test an infinite amount of times, against all possible errors that we can think of, we developers can never actually declare that our software is free of defects, unlike how our counterpart, the product manufactures, can. We have some reasons as to why this happens:

Complexity, this one pretty much talks about how many possible paths we have when designing our software, if we first click this, and then that? If I use this button and then go back to click this other one? Imagine this but with a complete application that has many sections. Visibility, this one is pretty clear, manufacturers can see in their products if maybe there’s a splint in one side, or this one part isn’t reinforced enough, us, on the other side, we can’t physically see what’s wrong with what we’re doing, so we have a lot more troubles detecting errors.

Why do we have quality standards?

What happens when we need to work with people that have had a completely different way of learning development and work than we did? How are we supposed to keep a straight line of work to organize our software product and meet all standards that we know along those that the other person knows? That’s right, quality standards. By having a general rule and approach to how something should be built, we can establish a base for everyone to work in.