Quality in simple words
What is quality?! This is a recurring topic and ongoing discussion.
Maybe it’s an emotion or it perhaps a comparison?
Is there a simple way to define it?
Before answering this question, let me start by sharing a story.
A real story about someone that got fired and didn't care that much (there was a reason for it!)
I always remember this story from 2007, when I was working in East Timor.
I was delivering a product for one of the biggest companies in East Timor. In fact, I was doing the full hardware and software installation, testing, talking with customer, well... a bit of all. At that time, we had to be able to solve as much as possible and deal with all the possible and imaginary constraints :) I loved East Timor and I wish I may come back there once again, as an explorer!
But the story is about this person that got fired because he had done a mistake. Actually, the boss wastrying to discuss with him about what happened and see his reaction to decide how to proceed.
That person wasn't concerned at all about losing the job. East Timor was a poor country and there weren't much job offers available. But that folk wasn't worried at all about getting unemployed. That for me was totally strange. "How can he survive without a job?" - I asked myself.
And then someone explained me the local context. Many people didn't actually need money. Why? Because they exchange things between them, like food supplies. Electricity and water were not a real concern back then. Thus, the value I assign to money was totally different from the value that person assigned to money, which was close to 0. And that changes your whole perspective about things, about life and the things you do with it. So, finding what matters will influence everything you'll do.
We may use this story reflect a bit about quality, value and testing. I've previously written about the relation between them using The Quality Ice Cream Truck model.
What is quality?
Quality is value to some person -- Jerry Weinberg
Quality is value to some person (quote from Jerry Weinberg, who has also a nice post on this topic). Well, in other words it means that quality is subjective. It depends on the eyes of the beholder. A couple of weeks ago I was having a conversation with my wife about values in life and she was counterarguing with me "well, those are not values... those are feelings".
That made me think for a while. I do think values and feelings are different things but they do have a subjective root.
Thinking on quality, we were saying that quality is value to some person or stakeholder... and indeed we’re talking about feelings, what makes those stakeholders satisfied or happy. Even if it's happy enough!
Quality, defined as simple as possible
So, putting it in simple words, quality is about making people happy, no matter if we’re talking about the internal product team, business, organization, or the end users.
Starting with end users, they become happy if:
- It addresses their needs
- It addresses their expectactions
And what do we exactly mean by that? What are those expectactions? Does the system perform what it says? Maybe there are performance expectactions and other we should care about?
- End users also become happy if they have seamless and simplified experiences
The team becomes happy if:
- Changes can be made safely (e.g.through good "testability")
- Changes can be easily made ("maintainability")
- One can understand the architecture
- Software can be operated easily (i.e. "operability")
- One can understand what is happening (e.g. "observability", "monitoribility")
- It provides the means for RCA (Root Cause Analysis)
Organization becomes happy with:
- Low costs with support and maintenance
- Low headaches with customers
- Low exposure in social media due to problems
- Ability to innovate fast
- Ability to overcome problems fast
All these people will approach quality from different angles, which change with time.
Quality and happinness are multidimensional
Quality is also multidimensional.
Using a balance as an analogy, each one of us, uses different weights for different quality criteria... therefore, the overall quality as measured by that balance, will be different for every single person. The variables, along with their weights, that make a certain person happy are different from person to person.
Besides, quality is not static and may easily get outdated.
Imagine an Instagram profile with few posts; people would say it has "low quality" and its interest decreases with time.
That’s why we need to provide value consistently, or else our product will get outdated & forgotten. That implies that we deliver value and also that we understand if we’re actually delivering value. In other words, we need to understand as much as possible about our users and how they are, or not, using the product.
We need to find ways of measuring value. Hmmm that could be a whole new topic but we can try having a simple approach instead of a perfect, non-feasible one.
- If a page/feature becomes unused then its value is questionable.
- If our users use our product while it’s free but we cannot convert them, well maybe we need to test our value proposition.
Wrapping it up
This simplified definition for quality - what makes people happy - can be a nice way of framing quality and explaining it. What makes each of us happy is different, in terms of the factors that contribute to it and their weights.
Besides, it changes with time. At a given moment we can be amazed by some website performance but later in time that can have less importance, when compared against the website content itself for example.
And our happinness also depends on getting value consistently (more on that in an upcoming post), or else we lose interest. Whenever talking about quality in (software/hardware) testing, we're in fact also looking at these aspects. Is this a rough/simplified definition for quality that works for you? What's yours?