Design a site like this with
Get started

What makes a good Software

We all have heard about Software Quality, how important it is, and its relevance on the industry, but do we really know what is Software Quality? If we don’t understand its basic elements we can’t implement it on our Software.

What is Software Quality?

I’m sure we have all developed a software which works fine, it solves the problem needed, and everything seems fine, but does it have good quality? Just because something seems to work, it doesn’t mean that it is a good software. It may be too slow compared to an optimized one, it may have security or privacy concerns, maybe it needs too many resources or breaks when too many users are using it at once. All of the above are issues that a quality software shouldn’t have.

We often have to look for those hidden bugs

The ISO 8402-1986 defines quality as: “the totality of features and characteristics of a product or service that bears its ability to satisfy stated or implied needs”. What this means is that a quality software shouldn’t just be a thing that works, it must be a complete thing, something that satisfies the customer, that is able to achieve in every way the goals of our client. Another good definition is the following: “Quality software refers to a software which is reasonably bug or defect free, is delivered in time and within the specified budget, meets the requirements and/or expectations, and is maintainable” -TRYQA. There are multiple definitions of software quality, but the core of it, is making a good product, avoiding the errors of the software crisis, achieving what the client needs, having an error-free system and ensuring that it’s efficient and secure.

But… How do we achieve quality?

Seeing the definitions above, surely you may think: “Oh, but that seems impossible how can my software ever achieve those standards”. The answer is that your software will never be 100% perfect, that is impossible, but we can make our software be close enough to perfection. For achieving that, the industry has developed many models, processes, which are kind of like a recipe that adapts to every software, because no software is the same, they all have different characteristics, issues and needs.

One thing important to note is that it’s usually rare when a software is completely finished, normally they are always in development, and just like that, the processes and models for ensuring that it achieves software quality never truly end.

Let’s see an example:

Software quality assurance is one of the most known processes for ensuring software quality. It uses the Software Requirement Specification document as a basis for its activities, and it also has its own document with the methodologies to be used along other important things. These are its steps:

A process that just like a circle, has no end


Create the plan

In this step, you create the plan, the document, about which methodologies, standards or techniques you will be using to ensure software quality


Set goals

It’s very important to set certain checkpoints and goals to ensure that the team is achieving what is expected.


Use Software Engineering

Software engineering provides us with very useful tools like use cases, user stories, interviews, documentation, etc.


Execute technical reviews

It’s useful to discuss the design quality of the software with the team to detect early errors before they become too big.


Multiple testing

Tests are very important to ensure that our software is good, but we should also make different types of test to ensure that we are testing everything about it.


Monitoring and evaluation

Checking if the software is adhering to the checkpoints you set earlier and to ensure the steps and methodology set are being followed


Control change

Use tools that allow you to easily revert changes that break the system and that allow you to see how a certain change affects other stuff.


Measure change impact

After each change, bug fix, etc. It’s important to keep evaluating the software, to see if it breaks anything or prevents a certain feature of the project to work.


Perform an audit

Make a reunion to compare the software quality assurance process that was documented in the beginning matches with the one being followed as the software is being developed and to observe which actions should change.



Documentation is crucial to make sure the information needed is updated and easily available all the time. And to ensure that all the developers can be on the same tune.


Mantain good relationships

The most important part of the process is to make sure that everyone respects each other and is working in an harmonious way.

As you can see, it’s a long process to ensure a quality software and one main point that helps us carry out the above tasks and makes them effective is trying to adhere to standards.

Standards and its role on Software Quality and SQ processes

As we follow a process to ensure software quality, we should also follow the standards of software quality that we set for the project. There are multiple of norms with their own set of standards, and usually people use a combination of them. Some of the most known are:

  • CMMI
  • ISO 9000, ISO 15504
  • TMMI

They are very important, because they talk about the important factors and metrics that the software should achieve or should strive for. In my following post I will talk in depth about some of them.

A final note

Thank you to everyone for seeing my posts, expect more soon!



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: