“What is Software Quality?” asked to ChatGPT.

People who follow me on LinkedIn, know that I talk about Software Quality on a regular basis. I do lecture Software Quality at the EngD program at the TU/e and I wrote a book entitled “What is Software Quality?”.

Out of curiosity, I did ask ChatGPT the question “What is Software Quality?” and it provided me the following answer:

  • Definition: Software quality refers to how well a software product meets the requirements, functions correctly, and satisfies user expectations.
  • Importance: High-quality software is reliable, efficient, secure, and provides a positive user experience.

At first glance this looks like a thorough and good answer on the posed question, isn’t it? Having second thoughts I realized something is missing.

Is there something missing?

Having a closer look at the definition as given by ChatGPT, it is clear that there is a focus on how the quality of the software is experienced and perceived by the user of the software. For sure an important aspect and very relevant to make your software a success. The same we recognise in the importance as given by ChatGPT; a focus on user experience.

The same external focus for software quality I do recognise in real life. Quality is seen as synonymous with user satisfaction, resulting in a strong focus on testing and bug handling. The similarity between software quality and testing goes so far that testers are even called QA-engineers.

Additionally, customer complaints are taken very seriously and handled with priority. And rightly so! The number of bugs found by customers is considered an important quality KPI, but be aware it is maybe the most lagging KPI we have.

No arguments against the similarity between software quality and user perception of the software, but we should realize that that is not the complete picture, something is missing.

How about internal quality?

When developing software, the team should steadily add value to meet the customers expectations and as such to make it a success. How well the team is able to add value, is highly dependent on the complexity of the software, which is determined by the requirements as being imposed on the team. But there is a second source of complexity the team is facing. This complexity is the complexity created by the team itself in the past, even yesterday…. It is the complexity of the software itself determined by the dependencies in the software and the obscurity of the software.

This internal complexity of the software is the part ChatGPT was missing when answering the question “What is Software Quality?”. To have a low complexity of the software correlates with a high level of internal quality of the software.

Design paradigms like “high-cohesion & low-coupling” or the SOLID principles are supporting to mitigate the number of dependencies as much as possible to achieve low complexity of the structure of the software. Clean Code is addressing to have code which works and is understandable by other human beings and as such mitigating obscurity. If you want to have a successful software product for the long term, internal software quality is an important aspect of software quality as well to mitigate complexity of the software to achieve a sustainable pace of development. It is that part of software quality that I miss in the answer ChatGPT provided me.

Leave a Reply

Your email address will not be published.